Community
Civil 3D Customization
Welcome to Autodesk’s AutoCAD Civil 3D Forums. Share your knowledge, ask questions, and explore popular AutoCAD Civil 3D Customization topics.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

ProfileEntity.MinimumKValueHSD Property

7 REPLIES 7
SOLVED
Reply
Message 1 of 8
joantopo
770 Views, 7 Replies

ProfileEntity.MinimumKValueHSD Property

Hi.

I would like to check 3 properties about profileEntity;

 

MinimumKValueHSD (HSD= headlight sight distance)

MinimumKValuePSD (PSD= Passing sight distance)

MinimumKValueSSD (SSD= Stopping sight distance).

 

All of them are "read" properties.

 

I don´t know where I can check them because I´m trying to do in ProfileEntity cast and I can´t do it:

 

I get an exception as: "InvalidOperationException"

"Cannot get this property according to entity´s type,constraint type or curve type".

 

Then, where I can get them?

 

exception.jpg

 

 

Other question is:

In which part or command in Civil 3D, Civil 3D application use them?

Are they used in  "Visibility check-check sight distance tool"?

 

Can we check them in Civil 3D? They don´t appear in "editor geometry" from profile.

 

Thanks in advance.

Autocad C3D 2019 SP3, 2020 & 2021
Intel I9 9900K with frontal watercooler alphacool eisbaer 360 (original fans mounted in pull)- 3 fans Corsair 120 ML PRO in push.
MOBO Gygabyte Z390 Aorus Master- Corsair RGB Vengeance 64GB RAM (4x16) CL16
Nvidia Quadro RTX 4000
Samsung 970 EVO PLUS 1TB (unit C). Samsung 970 PRO 512GB (for data)
Power Supply: Corsair TX850M PLUS


Descubre mi programa VisorNET para Civil 3D:
https://apps.autodesk.com/CIV3D/es/Detail/Index?id=appstore.exchange.autodesk.com%3avisornet_windows32and64%3aes
7 REPLIES 7
Message 2 of 8
joantopo
in reply to: joantopo

ProfilePVI class has the properties:

 

HSD

PSD

SSD

 

and they are get and set.

 

 

Autocad C3D 2019 SP3, 2020 & 2021
Intel I9 9900K with frontal watercooler alphacool eisbaer 360 (original fans mounted in pull)- 3 fans Corsair 120 ML PRO in push.
MOBO Gygabyte Z390 Aorus Master- Corsair RGB Vengeance 64GB RAM (4x16) CL16
Nvidia Quadro RTX 4000
Samsung 970 EVO PLUS 1TB (unit C). Samsung 970 PRO 512GB (for data)
Power Supply: Corsair TX850M PLUS


Descubre mi programa VisorNET para Civil 3D:
https://apps.autodesk.com/CIV3D/es/Detail/Index?id=appstore.exchange.autodesk.com%3avisornet_windows32and64%3aes
Message 3 of 8
Partha.Sarkar
in reply to: joantopo

Yes, these are part of ProfilePVI -

 

http://docs.autodesk.com/CIV3D/2014/ENU/API_Reference_Guide/html/f2e81087-8e6e-e427-3565-b0fe5b4f1f6...

 

Thanks,

 



Partha Sarkar
Developer Technical Services
Autodesk Developer Network

Message 4 of 8
joantopo
in reply to: Partha.Sarkar

Hi Partha.

 

I have some wishes. XD

 

The first one, those properties are "set" but we can´t modify them in Civil 3D without API.

In the "editor geometry" from profile (based on VAV) don´t appear those categories.

 

editor geometry.jpg

 


However, I will create a form to modify them because my program calculate those distances using a datatable parameters acoording to desing speed.

 

But I don´t understand this:

 

HeadlightSightDistance (HSD)
Gets or sets the headlight sight distance of the sag parabolic curve.       (why not for sag and crest?)

-PassingSightDistance (PSD)
Gets or sets the passing sight distance of the crest parabolic curve.   (why not  for sag and crest?)

-StoppingSightDistance (SSD) 
Gets or sets the stopping sight distance of the crest parabolic curve. (why not  for sag and crest?)

 

 

What is exactly "HeadlightSightDistance"?  distance of lights of car?

 

 

With those distances, Civil 3D calculate MinimumKValueHSD,MinimumValuePSD and MinimumValueSSD.


using (high eyes and high target) in Visibility check-check sight distance tool.

However, in Spain we use 2 parameters more.

-highlight tall (meters)

-Angle of lights.


To use them in sag parabolic by night. (Adverse conditions)

 

What are the expresions that use Civil 3D to calculate MinimumKValueHSD,MinimumValuePSD and MinimumValueSSD?

 

Thanks.

 

 

Autocad C3D 2019 SP3, 2020 & 2021
Intel I9 9900K with frontal watercooler alphacool eisbaer 360 (original fans mounted in pull)- 3 fans Corsair 120 ML PRO in push.
MOBO Gygabyte Z390 Aorus Master- Corsair RGB Vengeance 64GB RAM (4x16) CL16
Nvidia Quadro RTX 4000
Samsung 970 EVO PLUS 1TB (unit C). Samsung 970 PRO 512GB (for data)
Power Supply: Corsair TX850M PLUS


Descubre mi programa VisorNET para Civil 3D:
https://apps.autodesk.com/CIV3D/es/Detail/Index?id=appstore.exchange.autodesk.com%3avisornet_windows32and64%3aes
Message 5 of 8
joantopo
in reply to: joantopo

Hi Partha.

I got that Exception because it depended of CurveType (if it is Crest or Seg)

 

 HeadlightSightDistance (HSD)
Gets or sets the headlight sight distance of the sag parabolic curve.       (why not for sag and crest?)

-PassingSightDistance (PSD)
Gets or sets the passing sight distance of the crest parabolic curve.   (why not  for sag and crest?)

-StoppingSightDistance (SSD) 
Gets or sets the stopping sight distance of the crest parabolic curve. (why not  for sag and crest?)

 

For example:

 

For "MinimumKValueHSD" I will get an exception with crest parabolic curve.

For "MinimumKValuePSD" I will get an exception with sag parabolic curve.

And

For "MinimumKValueSSD" I will get an exeption with sag parabolic curve.

 

Then, it depends of (crest or seg) parabolic curve.

Autocad C3D 2019 SP3, 2020 & 2021
Intel I9 9900K with frontal watercooler alphacool eisbaer 360 (original fans mounted in pull)- 3 fans Corsair 120 ML PRO in push.
MOBO Gygabyte Z390 Aorus Master- Corsair RGB Vengeance 64GB RAM (4x16) CL16
Nvidia Quadro RTX 4000
Samsung 970 EVO PLUS 1TB (unit C). Samsung 970 PRO 512GB (for data)
Power Supply: Corsair TX850M PLUS


Descubre mi programa VisorNET para Civil 3D:
https://apps.autodesk.com/CIV3D/es/Detail/Index?id=appstore.exchange.autodesk.com%3avisornet_windows32and64%3aes
Message 6 of 8
joantopo
in reply to: joantopo

I do this and works fine:

 

    case ProfileEntityType.ParabolaSymmetric:

                            ProfileParabolaSymmetric parábolaSym = (ProfileParabolaSymmetric)RasantEnt;

                            Entidad.HighLowPointElevation = parábolaSym.HighLowPointElevation;
                            Entidad.HighLowPointStation = parábolaSym.HighLowPointStation;

                            Entidad.KV = parábolaSym.K;
                            Entidad.CurveType = parábolaSym.CurveType;  // SI ES CÓNCAVA O CONVEXA.
                            Entidad.A = Math.Abs(parábolaSym.GradeChange);
                            Entidad.Pendiente = parábolaSym.GradeIn;  // pendiente de entrada en tanto por uno
                            //son de sólo lectura.
                            if (parábolaSym.CurveType == VerticalCurveType.Sag)
                            {
                                //sólo válido para sag(cóncavo) dará error entonces en crest(convexos).
                                Entidad.MinimumKValueHSD = functions.funciones_genéricas.stringdecimales(RasantEnt.MinimumKValueHSD, variables_globales.precisio[0].decimalesKV);
                            }
                            else
                            {
                                Entidad.MinimumKValueHSD = "dato inválido";
                            }
                            if (parábolaSym.CurveType == VerticalCurveType.Crest)
                            {
                                //sólo válido para crest(convexo) dará error en sag(cóncavo).
                                Entidad.MinimumKValuePSD = functions.funciones_genéricas.stringdecimales(RasantEnt.MinimumKValuePSD, variables_globales.precisio[0].decimalesKV);
                                //sólo válido para crest(convexo) dará error en sag(cóncavo).
                                Entidad.MinimumKValueSSD = functions.funciones_genéricas.stringdecimales(RasantEnt.MinimumKValueSSD, variables_globales.precisio[0].decimalesKV);
                            
                            }
                            else
                            {
                            Entidad.MinimumKValuePSD ="dato inválido";
                            Entidad.MinimumKValueSSD = "dato inválido";
                            }

                            break;

 However, if there is a value, it always returns  -1.

I have tried with different KV values with seg and crest parabolic curve.

 

What´s the meaning of "-1"?

 

I will try to modify distances in PVIs instance to check if KVminimum values change also.

 

Autocad C3D 2019 SP3, 2020 & 2021
Intel I9 9900K with frontal watercooler alphacool eisbaer 360 (original fans mounted in pull)- 3 fans Corsair 120 ML PRO in push.
MOBO Gygabyte Z390 Aorus Master- Corsair RGB Vengeance 64GB RAM (4x16) CL16
Nvidia Quadro RTX 4000
Samsung 970 EVO PLUS 1TB (unit C). Samsung 970 PRO 512GB (for data)
Power Supply: Corsair TX850M PLUS


Descubre mi programa VisorNET para Civil 3D:
https://apps.autodesk.com/CIV3D/es/Detail/Index?id=appstore.exchange.autodesk.com%3avisornet_windows32and64%3aes
Message 7 of 8
Partha.Sarkar
in reply to: joantopo

Hi,

 

These are Curve type dependent.

 

Please check this link and expand the examples / diagram section to see a better explanation of this parameters -

 

http://docs.autodesk.com/CIV3D/2014/ENU/index.html?url=filesCUG/GUID-C96A473E-368A-4DFA-98DA-EE0744E...

 

Thanks,

 



Partha Sarkar
Developer Technical Services
Autodesk Developer Network

Message 8 of 8
joantopo
in reply to: Partha.Sarkar

Thanks Partha.

 

In Spain doesn´t exist KValue concept.  (using a speed table)

 

We calculate for example, MinimumKValueSSD (distancia de parada) using the following expresion:

 

   static double CalculaKv_Dp(double Dp, Autodesk.Civil.DatabaseServices.VerticalCurveType TipoAcuerdo)
      {
           double Kv = 0;

           double H1 = variables_globales.H1; //altura de la vista del conductor (eyes height)
           double H2 = variables_globales.H2; //altura a la que se encuentra el objeto sobre la calzada (target height)
           double HF = variables_globales.HF; //altura de los faros.

           double Alpharad = functions.funciones_genéricas.sexagesimal_radian(variables_globales.Angulo); // expresado en radianes.

           if (TipoAcuerdo== VerticalCurveType.Sag)  // en panza, "U" CÓNCAVO para tener en cuenta la nocturnidad
           {
               Kv = Math.Pow(Dp, 2) / (2 * (HF - H2 + Dp * Math.Tan(Alpharad)));
           }

           if (TipoAcuerdo == VerticalCurveType.Crest)  // CONVEXO
           {
               Kv = Math.Pow(Dp, 2) / (2 * Math.Pow(Math.Sqrt(H1) + Math.Sqrt(H2), 2));
           }

           return Kv;
       }

 H1= high eyes, H2=high target and HF= headlights tall. (that parameters are in the Check Visibility tool).

 

and Dp(Stopping sight distance) is ;

 static double CalculaDp(double V, double Fl, double i) //Dp es distancia de parada  (el parámetro i se refiere a inclinación de la rasante).
       {
          double Tp = variables_globales.Tp; //tiempo parada
         double Dp = (V * Tp / 3.6) + (Math.Pow(V, 2) / (254 * (Fl + i)));
         return Dp;
       }

 Tp= time of stop (usually 2 seconds), V=(speed project) ,  i=gradeIn, Fl =longitudinal coefficient of friction wheel-pavement (we get it from speed table).

 

As you see, we calculate this either crest or sag type paraobla.


But, it seems that in USA don´t use SSD to calculate MinimumKValueSSD.

 

I tyried to change the SSD value from my SDD (Dp) value but I couldn´t do it although SDD property is set. And I could change PSD only with values nearest current values.

 

 

I have found out some things:

 

The only XML file that contains "Profile" category is: _Autodesk Civil 3D Metric Roadway Design Standards.xml
minimumKV.jpg

 

 

The rest of the files, including Spain XML file, don´t contains "Profile" category, so the results of MinimumKValueHSD,MinimumKValueSSD or MinimumKValuePSD, depending of entity type(crest or sag) always are "-1".

 

Then, If we don´t use XML design criteria file or it doesn´t contain "Profile" category, the results are -1.

 

Moreover, in Editor Geometry (VAV) the last columns are:

 

 

 

 

Autocad C3D 2019 SP3, 2020 & 2021
Intel I9 9900K with frontal watercooler alphacool eisbaer 360 (original fans mounted in pull)- 3 fans Corsair 120 ML PRO in push.
MOBO Gygabyte Z390 Aorus Master- Corsair RGB Vengeance 64GB RAM (4x16) CL16
Nvidia Quadro RTX 4000
Samsung 970 EVO PLUS 1TB (unit C). Samsung 970 PRO 512GB (for data)
Power Supply: Corsair TX850M PLUS


Descubre mi programa VisorNET para Civil 3D:
https://apps.autodesk.com/CIV3D/es/Detail/Index?id=appstore.exchange.autodesk.com%3avisornet_windows32and64%3aes

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Rail Community


Autodesk Design & Make Report