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.
Sorry, not without giving it a deeper look. That's not gonna happen today, for sure, but if you ping me later in the week I'll see...
Tim
I am a big fan of point groups and understand you would rather not use them, but I just want to give you one tip that changed my perception of pointgroups.
If you create a pointgroup that includes all points in the drawing and name it something along the lines of _No Display. and set the style & label to none, you can use this point group to determine which points you see and dont. Any point groups above will be displayed, but below will not.
This assumes that the end user of the file is dealing with points in the current file. Or that the files are under your control.
Our design staff use survey generated maps as xrefs and cannot take advantage of point groups for those files. Also, unlike design points, survey points have literally hundreds of styles. And sometimes our files get shared with non-Civil 3D shops where they are relying on Object Enablers to see our points.
Styles are great and Point Groups are greatly improved over those in LD. But for a lot of people, the need to be able to use layers to modify the display of external files, as they might not even be under thier control. And they don't want to make copies or they risk missing updates made by the owners of the original files.
To all,
Kevin and I have gone back and forth privately to come up with a more complete solution than what I posted before.
Please try out the attach which allows you to select more than one point as well as non-point objects. The command you type to make it isolate is PI and to unisolate use PUI.
Best regards,
Tim
This will take a bit of time to digest.
I tried doing some of this as VBA but found that points not using description keys behaved differently than ones using them. It was like suddenl,y the styles were not as visible to the application.
@tcorey wrote:To all,
Kevin and I have gone back and forth privately to come up with a more complete solution than what I posted before.
Please try out the attach which allows you to select more than one point as well as non-point objects. The command you type to make it isolate is PI and to unisolate use PUI.
Best regards,
Tim
Tim,
I can't thank you enough for the time you put into this. This has EXACTLY the functionality I was looking for plus even more I dreampt up after my initial posts.
Regards,
Kevin
@CharlesRheault6717 wrote:
This will take a bit of time to digest.
I tried doing some of this as VBA but found that points not using description keys behaved differently than ones using them. It was like suddenl,y the styles were not as visible to the application.
The points that use Default have to be handled differently. You have to reach into the civil 3d document, find point styles and their settings to discover which point style is the default. Then you can retrieve layer info from that. See the subroutine called DefaultPointStyle. Here's the code for that sub routine:
(defun DefaultPointStyle () (setq C3dActDoc (vlax-get-property c3dapp 'Activedocument) c3dSettings (vlax-get-property c3dactdoc 'Settings) c3dPtCmdSettings (vlax-get-property c3dSettings 'PointCommandsSettings ) c3dCreatePtSettings (vlax-get-property c3dPtCmdSettings 'CreatePointsSettings ) c3dPtStyleSettings (vlax-get-property c3dCreatePtSettings 'StyleSettings ) c3dPtDefaultStyle (vlax-get-property c3dPtStyleSettings 'Style) c3dPtDefaultStyleName (vlax-get-property c3dPtDefaultStyle 'Value) ) ) ;end function
Coming from the other side of the CAD world, my lisp and VL skills are not very good.
I've done a fair amount of VB and VBA coding so that is more in my comfort zone. I have begun playing with the dot net stuff, but as a part time coder, it is difficult to keep up with changes or te feel a high level of comfort.
Anyway, thanks for what you have posted so far. I still need to find a way for users to turn off levels in objects by clicking on them, even if they are in an XREF.
At this point, I am thinking that this will end up being a level filter thing, except I have not seen a method of sharing level filters after the fact.