One of the greatest advantages to using Revit, is its scheduling capabilities. If you model your landscape and hardscape accurately, you can create schedules that pull almost any area, quantity, or value, which is great for cost estimating.
This is easiest to do with families and parameters that Revit has by default. Floors, for example, come with an Area parameter that automatically calculates the area of any and every floor in the model. But even if a system family does not have the parameters that you want, there is often a way to get them.
An excellent example of this is an In-Place Curb (modeled as a Floor). Usually, curbs (or kerbs), are measured and placed in cost estimates by length. While Length is not one of the parameters available to Floors, it does have some other parameters that could be used to get length, including Area and Volume. Either parameter can be used to extract Length, though how you model your Curb may dictate which one is more accurate.
I decided to use Volume. If using Volume, the first parameter you need to create is the Profile Area (if using Area, this is Curb Width). I also chose to lock these into a Floor Style, though it is not necessary.
Back in the Floor schedule, create the Length field as a Calculated Value. For Volume: Volume/ Profile Area, and for Area: Area/ Curb Width. Since I used Styles, the Floor Style must match the correct Key Name.
And there you have it: Length of Curb, entirely calculated for you by Revit.
However, using this method does require some Curb management. Different profiles should be kept in separate components/ styles. And it will not be as accurate if the Area Profile or Curb Width is not consistent (such as in transitions/ swept blends). But some data is better than no data, as long as you know its limits.