Create Split Topography Using API

Create Split Topography Using API

grahamcook
Advocate Advocate
3,553 Views
6 Replies
Message 1 of 7

Create Split Topography Using API

grahamcook
Advocate
Advocate

Hi

 

I'm developing some Topography tools.  One of the tools creates / cuts paths into existing Topos from model lines drawn in plan, with controls for gradient / embankment / landings etc.  See image1.jpg


What we need to do next is extract the resulting path surface.  If we do this manually using the Revit UI we can copy parallel the path centre line, close off the ends and use the resulting shape as the input to Split Topo.  See image2.jpg

 

But without a Split Topo method within the API, the only other option (I think) is to create a new Topography using TopographySurface.Create.   But as has already been documented on this forum, this always creates convex hull shapes with no options for creating concave.  So this approach does not help unless the path is completely straight.  See image3.jpg

 

Are there any plans to include Split Topo as an API method?  It would open up so many possibilities for developers in manipulating topographies, landscaping, etc.

 

Regarding a part solution to the above I found I can create a Floor from the path edge points in plan (already drawn in order anti-clockwise) and then move each SlabShapeVertex point up to the required level in the Z coordinate.

 

 

Thanks

 

Graham Cook

0 Likes
Accepted solutions (1)
3,554 Views
6 Replies
Replies (6)
Message 2 of 7

Revitalizer
Advisor
Advisor
Accepted solution

Hi,

 

may it be that SiteSubRegion.Create(document, curveLoops, hostTopoSurfaceId) is made for exactly this purpose?

 

 

Revitalizer




Rudolf Honke
Software Developer
Mensch und Maschine





Message 3 of 7

grahamcook
Advocate
Advocate

Hi Revitalizer

 

What I failed to mention in my original post was that once I had the split topo defining my path outline, I was going to convert this to a floor (we have a topo to floor utility).  So your suggestion to create a sub region would certainly have given me what I needed as I would simply pass in the subregion rather than a standard topo.  Nice one.

 

This will also give me scope for further solutions / ideas for future functions.

 

Landscape Architects like to define the material layers that make up the path (sub-base, compact sand, finish, etc).  From this they can then get volumes required.  Where you can assign a material to a topo or sub region, you cannot define the build-up (as far as I know) hence the need for creating a floor type to represent the path.

 

So I now have 2 solutions to my problem with the sub-region route being less painful than creating the floor from scratch (as I have already done)!

 

A Split Topo method would still be a nice addition though!

 

 

Regards

 

Graham Cook

0 Likes
Message 4 of 7

Revitalizer
Advisor
Advisor

Hi Graham,

 

I absolutely agree!

 

Would also be wonderful to define boundaries on TopoSurface's creation to fix the convex/concave problem.

 

public static TopographySurface Create(
    Document document,
    IList<XYZ> points,
    IList<CurveLoop> boundaries
)

 

This way, one could except areas from the convex hull, like applying a mask to it.

 

 

Revitalizer




Rudolf Honke
Software Developer
Mensch und Maschine





0 Likes
Message 5 of 7

grahamcook
Advocate
Advocate

I second that!

Being able to define the boundary would be brilliant rather than just throwing in a collection of points.

 

Graham Cook

0 Likes
Message 6 of 7

Revitalizer
Advisor
Advisor

Hi,

 

I've posted it on the Idea Station.

When browsing the API forum, I found several threads about the convex/concave issue.

So I decided to bring it to the right place:

https://forums.autodesk.com/t5/revit-ideas/create-nonconvex-topographysurface-revit-api/idi-p/750125...

 

I would recommend to do that for the SplitTopoSurface, too.

 

 

Revitalizer

 

 




Rudolf Honke
Software Developer
Mensch und Maschine





0 Likes
Message 7 of 7

grahamcook
Advocate
Advocate