-
Notifications
You must be signed in to change notification settings - Fork 159
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enhancement: Civil 3D Corridor Baseline and Cross Section Data #3265
Comments
Getting to this now - after looking into the API, would this proposed hierarchy for applied assemblies work? This would allow you to more easily retrieve all shapes, links, and points of a particlar applied assembly. Happy to discuss further in a call if necessary public class AppliedAssembly
{
public List<AppliedSubassembly> subassemblies { get; set; }
// all calculated shapes of this assembly
public List<CalculatedShape> shapes { get; set; }
// all calculated links of this assembly
public List<CalculatedLink> links { get; set; }
// all calculated points of this assembly
public List<CalculatedPoint> points { get; set; }
}
public class AppliedSubassembly
{
// the parent applied assembly of this applied subassembly
[jsonIgnore]
public AppliedAssembly parent {get; set;}
// the indices of the shapes of this applied subassembly in parent.shapes
public List<int> shapeIndices { get; set; }
// the indices of the links of this applied subassembly in parent.links
public List<int> linkIndices { get; set; }
// the indices of the points of this applied subassembly in parent.points
public List<int> pointIndices { get; set; }
} |
My initial instinct would be to follow the Civil 3D API a bit more in the hierarchy, and store all the shapes/links/points underneath the subassembly they belong to, rather than the assembly level. It’s important to be able to associate the points to links, links to shapes, and shapes to subassemblies. |
Prerequisites
What package are you referring to?
Civil 3D Connector
Is your feature request related to a problem? Please describe.
This doesn't solve a problem, but adding in all this extra data gives us all the information about the cross sections which Civil 3D has already generated and made available though its API, and saves us having to reverse engineer the featureline data by writing lots of code to take slices through the featurelines to generate coordinates of points on the cross section.
Describe the solution you'd like
Civil 3D Corridors should store lots more additional information about the baselines, and the assemblies and subassemblies which make up each cross section generated along the corridor
Suggest to add a "@baseline" list at the same level as the existing @alignments, @eaturelines, etc... lists
Each baseline object should have the baseline name, horizontal baseline, vertical baseline, assembly name, start station, and end station properties. This is the information you see on the Civil3D corridor parameters window:
Also include the list of stations made available from the Baselines.SortedStations() API call
From here, follow the hierarchy of Civil3D objects from its API, so the Baseline objects should include a list of AppliedAssembly objects. The AppliedAssembly object should contain a list of AppliedSubassembly objects, and so on, for the full hierarchy down to CalculatedPoints as listed out below
The AppliedSubassembly object should contain the list of parameters set for the subassembly from which it was created.
The CalculatedShape, CalculatedLinks, and CalculatedPoints objects should include the "Codes" which are applied to those objects
Describe alternatives you've considered
There are no alternatives. This is extra data available through the Civil3D API that should be included in the Speckle objects
Additional context
Storing all this information stores information about each cross section generated along the corridor, along with all the information stored in the subassembly parameters which give additional geometrical and non-geometrical information about the design they are representing.
At the moment, only featureline are available, so to get any kind of cross section from the data, we have to slice through the featurelines with a plane to get the coordinates,
Related issues or community discussions
None
The text was updated successfully, but these errors were encountered: