Profile Data Band Label Group

Profile Data Band Label Group

Civil3DReminders
Collaborator Collaborator
970 Views
2 Replies
Message 1 of 3

Profile Data Band Label Group

Civil3DReminders
Collaborator
Collaborator

So I've got a collection of the LabelGroupSubEntity in the ProfileDataBandLabelGroup. I need to replace some values inside them based on what Vertical Geometry Point they are labeling. Is there an easy way to determine what station value it is labeling?

 

Christopher 

0 Likes
971 Views
2 Replies
Replies (2)
Message 2 of 3

Jeff_M
Consultant
Consultant

Will this give you what you need?

 

            CivilDocument civdoc = CivilApplication.ActiveDocument;
            using (Transaction tr = HostApplicationServices.WorkingDatabase.TransactionManager.StartTransaction())
            {
                Alignment oAlign = (Alignment)civdoc.GetAlignmentIds()[0].GetObject(OpenMode.ForRead);
                ProfileView pv = (ProfileView)oAlign.GetProfileViewIds()[0].GetObject(OpenMode.ForWrite);
                RXClass profDataBandLabelGroupRXClass = SystemObjects.ClassDictionary["AeccDbProfileDataBandLabeling"] as RXClass;
                ObjectIdCollection profBandLabelsObjIdColl = ProfileBandLabelGroup.GetAvailableLabelGroups(profDataBandLabelGroupRXClass, pv.ObjectId, false);
                if (profBandLabelsObjIdColl.Count > 0)
                {
                    ProfileBandLabelGroup grp = (ProfileBandLabelGroup)profBandLabelsObjIdColl[0].GetObject(OpenMode.ForRead);
                    if (grp.GetType() == typeof(ProfileDataBandLabelGroup))
                    {
                        foreach (LabelGroupSubEntity subent in grp.SubEntities)
                        {
                            double station = Double.NaN;
                            double elevation = Double.NaN;
                            pv.FindStationAndElevationAtXY(subent.AnchorInfo.Location.X, subent.AnchorInfo.Location.Y, ref station, ref elevation);
                        }
                    }
                }
                tr.Commit();
            }

 

Jeff_M, also a frequent Swamper
EESignature
0 Likes
Message 3 of 3

Civil3DReminders
Collaborator
Collaborator

Yes and no. It works if my labels are not staggered. Unfortunatley my labels are staggered so they won't be a the point being labeled.

 

Christopher

0 Likes