I am in the process of setting up Civil 3D styles for survey and trying to overcome some challenges that are a great source of frusteration. The key items I am trying to accomplish are as follows:
I have everything working the way I want with the exception of being able to use layiso to display all points on a layer. Currently my point label styles are set to layer 0 byblock which passes display to the point object. I have created a layer called V-NODE-HIDE that I set as the layer for non-symbol markers and all point labels. Point markers that are symbols that should be displayed on a map are put on their associated V-TOPO-XXX-SYMB layer. When finished mapping I want to be able to type "PH" (Point Hide) and hide all point labels and basic markers by freezing V-NODE-HIDE. The issue is that because point objects, labels and markers are on different layers, when I isolate a single point, everything disappears.
Is there a lisp routine that will extract all layers from sub-components of a Civil 3D object and add those layers to the isolate? This would solve my issue and give me all of the functionality I am looking for. I have seen several discussions along this line on the forums, but not a solution that fits my needs. I am open for pretty much any suggestion other than I need to have a point group created for every single descriptor I have and have to move groups up and down the hierarchy to get the display I need. It is just too inefficient.
Thanks in advance,
Kevin
Solved! Go to Solution.
Solved by tcorey. Go to Solution.
kgerman wrote:
- Be able to isolate all points on a layer (sorted individually by descriptor key matching to V-NODE-XXXX) WITHOUT the use of point groups. I see point groups as a very inefficient way to do this. I want to be able to select Layiso, grab one point and have full display of all points on that node layer and start connecting the dots.
- Be able to control node layer display individually (ie. all topo points gray, found points green, control pink, etc)
- Setup a quick toggle to turn off display of all points and basic markers except those which have a symbol assigned to them and should be shown on the map.
Steve
Please use the Accept as Solution or Kudo buttons when appropriate
I don't really know if there is a solution for that. All of us who transitioned from Land Desktop to Civil 3D went through that when we first encountered the new program. The layiso worked as you want in Land Desktop. As you have experienced. It doesn't in Civil 3D.
As far a point groups being a "very inefficient" way to handle this. Once I realized I wasn't going to be able to manipulate the layers as I did in the old program and got used to using point groups. I now find I'm quit comfortable using point groups in this way. I did add _AeccShowPointGroupsList to a tool pallet so I wouldn't have to dig down in the prospector tab all the time.
If you give us a reason why you want to isolate a certain point layer. We might be able to come up with a workaround
Allen Jessup
Allen Jessup
CAD Manager - Designer
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.
Allen,
Whether I am connecting linework of a topo or just want to see all points on a certain layer, using layiso is an extremely fast and efficient way to move through different point layers.
Are you using a version from the last 3 years. Line connection is mostly handled through description keys now. We use a 3rd party program called PConnect that's part of SmartDraft. But I've seen linework come in to others drawing through Civil 3D with a very good rate of accuracy. Most anomalies occur because of coding errors.
Allen
Allen Jessup
CAD Manager - Designer
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.
We are using V2013. I know that option is available, but we haven't crossed that bridge yet for several reasons. I look forward to being able to experiment with it in the future, but we are trying to crawl in Civil 3D before we walk (lots of old dogs, new tricks issues here).
@kgerman wrote:
(lots of old dogs, new tricks issues here).
Yeah. That's why I mentioned the experiences going from LDT to C3D. I don't know of an answer to your layiso question. Possibly someone will chime in later with a solution (or at least a better workaround)
Allen
Allen Jessup
CAD Manager - Designer
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.
I am having the same problem. I have set up a description key, I have 3 different layers, one for the overall node, one for the marker and one for the label. I have adjusted the points style in the display tab to have the marker and label on separate layers. Unfortunately none of this allows me to layiso the marker or the label individually, or to layoff or layfrz individually. I have created point groups to handle this and to push them up and down as needed, unfortunate the clients we send the drawings to are not as savvy with the point group pushing and would like the ability to layer of/freeze the point descriptions without the marker disapearing. So if there is a fix for this I would be interested.
I posted this on 8/16/2013, but have not had any response to it.
http://forums.autodesk.com/t5/AutoCAD-Civil-3D/Controling-Layers-in-Point-Styles/m-p/4370143
Chris M. Davis
I apprecaite any and all feedback, thank you. As much as I do it every day I just can't handle giving up my very fast layiso option for fumbling through point groups. Each instance turns a nearly instantaneous process into a 30-60 second one. As a side note, if they would at least let you drag and drop the point group hierarchy that would help speed things up, but you still need a messy list of point groups that cover every possible descriptor code and additional groups that would cover the multiple descriptor codes that could be on a single layer.
@Jeff_M wrote:The 3rd party package Sincpac C3D has SPLAYISO which does what you want. Although there is no corresponding SpLayUnIso, I'm guessing because Sinc always had all layers On so LayOn was all he needed.
Thanks. It is good to know that it is at least possible. Although i'm looking for the just one routine so buying a 3rd party add-on for the entire office is not feasible. I wonder if he sells the individual scripts?
If I have this right you want each point description on its own layer, but you also want to be able to isolate all of the layers which include points without symbols so that you can freeze them off. If you have a layer name convention that separates Nodes from Symbols then you could set up a layer filter to control this.
@sboon wrote:If I have this right you want each point description on its own layer, but you also want to be able to isolate all of the layers which include points without symbols so that you can freeze them off. If you have a layer name convention that separates Nodes from Symbols then you could set up a layer filter to control this.
Point objects are on their own individual layers. Non-symbol markers are on a V-NODE-HIDE layer, all labels are also on V-NODE HIDE (not individual layers), symbols are on their corresponding V-TOPO-XXXX-SYMB layer. I want to be able to use layiso (or a custom version thereof) to select a point object and have the layer the object is is on isolated as well as any layers within the point object. Maybe I am not understanding, but I do not see the layer filter accomplishing this for me with having to have a huge list of layer filters for every possibly point layer I want to isolate.
Although as I typed this I had a revelation that I don't actually need to know what layers are within the point object. If I can programatically tell the layiso command to add V-NODE-HIDE and V-TOPO-*-SYMB to the list of isolated layers, then I will get exactly the results I am wanting. Even though all symbol layers will be turned on, they will not display because the other node object layers will be turned off. Only hurdle left would be how to script the layiso command to add those layers to the isolated list without selecting actual objects...
I think that we may have some confusion here. I've attached a zipped drawing to show exactly what I'm suggesting.
All point styles use layer 0 and ByBlock settings only. The Description Key specifies the layer, point style and label style for all recognized descriptions. You can use LAYISO, LAYOFF etc to control the display of points by descriptions. If you open the layer dialog you can also use the filters to quickly turn on/off all points with nodes or symbols. I've also created a point group called HIGHLIGHT that uses a different point style to emphasize points with certain descriptions.
Steve
Please use the Accept as Solution or Kudo buttons when appropriate
@sboon wrote:I think that we may have some confusion here. I've attached a zipped drawing to show exactly what I'm suggesting.
All point styles use layer 0 and ByBlock settings only. The Description Key specifies the layer, point style and label style for all recognized descriptions. You can use LAYISO, LAYOFF etc to control the display of points by descriptions. If you open the layer dialog you can also use the filters to quickly turn on/off all points with nodes or symbols. I've also created a point group called HIGHLIGHT that uses a different point style to emphasize points with certain descriptions.
I'm sorry if i'm not explaining it well enough, but your solution doesn't appear to give me any of the flexability I am looking for. 1) When I use layiso, the point label disappears, 2) cannot control the marker and label color by changing the layer color (I have a script that lets you grab an object and change the color of that objects layer. This lets me do the "highlight" which you have done with a point group on the fly and I can do it to any node layer just by selecting it instead of editing a point group) and 3) while the layer filter does work for turning off non-symbol markers and label text, I find having to to through the layer dialog a bit painful.
I have included my own work-in-progress file that gives me all of the functionality I am looking for with the exception of the use of layiso to quickly isolate individual point layers and maintain visibility of the labels as well. This is setup that in order to get rid of all point labels and basic markers, just freeze V-NODE-HIDE. I'm old school so I do this with a keyboard shortcut rather than running through dialogs.
1) When I use layiso, the point label disappears2) cannot control the marker and label color by changing the layer color (I have a script that lets you grab an object and change the color of that objects layer. This lets me do the "highlight" which you have done with a point group on the fly and I can do it to any node layer just by selecting it instead of editing a point group)
3) while the layer filter does work for turning off non-symbol markers and label text, I find having to to through the layer dialog a bit painful.
I have included my own work-in-progress file that gives me all of the functionality I am looking for with the exception of the use of layiso to quickly isolate individual point layers and maintain visibility of the labels as well. This is setup that in order to get rid of all point labels and basic markers, just freeze V-NODE-HIDE. I'm old school so I do this with a keyboard shortcut rather than running through dialogs.
All of your point styles have layers inside of them which appears to be the root of your problems. It's similar to a block which has been defined with components on various layers. If you turn off or freeze any of those layers then parts of your block disappear. Try changing at least the point label layer in your point styles to 0, that should solve #1
Similar to above - changing the color of the layer the point is inserted on has no effect, since the point component within the style is on a different layer. For example I looked at a LP. The point is on layer V-NODE-ELEC but I have to change the color of V-NODE-ELEC-SYMB.
Using a layer within the styles to turn off all point display can work, but it prevents you from using LAYISO etc.
Steve
Please use the Accept as Solution or Kudo buttons when appropriate
@sboon wrote:All of your point styles have layers inside of them which appears to be the root of your problems. It's similar to a block which has been defined with components on various layers. If you turn off or freeze any of those layers then parts of your block disappear. Try changing at least the point label layer in your point styles to 0, that should solve #1
Similar to above - changing the color of the layer the point is inserted on has no effect, since the point component within the style is on a different layer. For example I looked at a LP. The point is on layer V-NODE-ELEC but I have to change the color of V-NODE-ELEC-SYMB.
Using a layer within the styles to turn off all point display can work, but it prevents you from using LAYISO etc.
Steve
Yep, it's definitely the layers inside the point that are the issue. But they are necessary to get the functionality I am looking for to hide non-symbol markers and labels when it is time to pretty the map up for delivery. That is why I am looking for a workaround.
Try changing the color of the layer again, but doing a regen. You can indeed control the color by layer. You can see that because my control points are pink and found monuments are green. Symbol markers will not change because they are bylayer. That is by design. I did have several point styles that were not setup byblock for the labels correctly that I fixed, but try it with any layer that uses the basic point style or anything in the list above METR-ELEC (that is where I got lazy and stopped changing bylayer to byblock).
Thanks for trying Steve. I know i've got a pretty specific set of criteria, but i'm sure there is an answer out there somewhere.
Kevin, this code will do what you're asking.
(defun c:go ( / pt lyr vpt ptstyl mkr lbl mkrlyr lbllyr) (vl-load-com) (setq pt (car (entsel "\nSelect Point on Layer to Isolate: ")) ;select the point lyr (cdr (assoc 8 (entget pt))) ;the point's layer ) (setq vpt (vlax-ename->vla-object pt)) ; makes a vla object from the point (setq ptstyl (vlax-get-property vpt 'Style)) ; retrieves the point's style (setq mkr (vlax-get-property ptstyl 'MarkerDisplayStylePlan)) ;retrieves the marker display info for plan view (setq lbl (vlax-get-property ptstyl 'LabelDisplayStylePlan)) ;retrieves the label display info for plan view (setq mkrlyr (vlax-get-property mkr 'Layer)) ;get the marker's layer (setq lbllyr (vlax-get-property lbl 'Layer)) ;get the label's layer (vl-cmdf "layer" "off" "*" "y" "on" lyr "on" mkrlyr "on" lbllyr "") ;Isolates the layers. (princ) )
Best regards,
Tim