<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: vb.net Create Waterdrop in a surface in Civil 3D Customization Forum</title>
    <link>https://forums.autodesk.com/t5/civil-3d-customization-forum/vb-net-create-waterdrop-in-a-surface/m-p/11798537#M3959</link>
    <description>&lt;P&gt;Ok Jeff. Understood.&lt;/P&gt;&lt;P&gt;I included the form later and I supposed it was not relevant.&lt;/P&gt;&lt;P&gt;Your help has been very useful. Thanks.&lt;/P&gt;</description>
    <pubDate>Sat, 04 Mar 2023 19:05:44 GMT</pubDate>
    <dc:creator>jmmarin</dc:creator>
    <dc:date>2023-03-04T19:05:44Z</dc:date>
    <item>
      <title>vb.net Create Waterdrop in a surface</title>
      <link>https://forums.autodesk.com/t5/civil-3d-customization-forum/vb-net-create-waterdrop-in-a-surface/m-p/11794155#M3949</link>
      <description>&lt;P&gt;Hi all.&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am trying to create a waterdrop in a surface. I have found some examples in Internet, but it does not work. I think it is due changes in versions from 2013.&lt;/P&gt;&lt;P&gt;I have loaded the following two references (not sure if they are the correct or additionals are needed):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Autodesk.AECC.Interop.Land&lt;/P&gt;&lt;P&gt;Autodesk.AECC.Interop.UILand&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The code I found is the following, but it does not work when the function "CreateWaterdrop(Point2d location, WaterdropObjectType objectType)" is called:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="visual-basic"&gt;Dim drops As New ObjectIdCollection()
For Each triangle As TinSurfaceTriangle In surface.Triangles
  Dim centroid As Point2d = _
           getTriangleCentroid(triangle)
  ' calculate water-drop for the centroid
  Dim oid As ObjectIdCollection = _ 
    surface.Analysis.CreateWaterdrop(centroid, _
    Autodesk.Civil.Land.WaterdropObjectType.Polyline3D)
    ' Save all the water-drops
	
    For Each id As ObjectId In oid
      drops.Add(id)
    Next
Next&lt;/LI-CODE&gt;&lt;P&gt;I understand the code, but my problem is the function...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance.&lt;/P&gt;</description>
      <pubDate>Thu, 02 Mar 2023 18:33:07 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/civil-3d-customization-forum/vb-net-create-waterdrop-in-a-surface/m-p/11794155#M3949</guid>
      <dc:creator>jmmarin</dc:creator>
      <dc:date>2023-03-02T18:33:07Z</dc:date>
    </item>
    <item>
      <title>Re: vb.net Create Waterdrop in a surface</title>
      <link>https://forums.autodesk.com/t5/civil-3d-customization-forum/vb-net-create-waterdrop-in-a-surface/m-p/11795012#M3950</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/5478727"&gt;@jmmarin&lt;/a&gt;&amp;nbsp;You do not need to reference the COM libraries. The waterdrop type should be:&lt;/P&gt;
&lt;P&gt;Autodesk.Civil.WaterdropObjectType.Polyline3D&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;That should allow it to work. With the Land in there you were mixing COM and .NET API types.&lt;/P&gt;</description>
      <pubDate>Fri, 03 Mar 2023 02:33:38 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/civil-3d-customization-forum/vb-net-create-waterdrop-in-a-surface/m-p/11795012#M3950</guid>
      <dc:creator>Jeff_M</dc:creator>
      <dc:date>2023-03-03T02:33:38Z</dc:date>
    </item>
    <item>
      <title>Re: vb.net Create Waterdrop in a surface</title>
      <link>https://forums.autodesk.com/t5/civil-3d-customization-forum/vb-net-create-waterdrop-in-a-surface/m-p/11795696#M3951</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/32637"&gt;@Jeff_M&lt;/a&gt;&amp;nbsp;.&lt;/P&gt;&lt;P&gt;Thanks for your answer.&lt;/P&gt;&lt;P&gt;Ok. I have done what you suggest. The object is correct but, however, the collection is filled with objects without IDs... I do not know why. Maybe lack of knowlege (again...).&amp;nbsp;&lt;BR /&gt;The code is the following. I use two auxiliary functions to find the SurfaceID and also to obtain the point.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I also attach the model with the surface.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I hope this helps to guide me. Thanks.&lt;/P&gt;&lt;LI-CODE lang="visual-basic"&gt;'Get surface ID
    Public Shared Function obtenerSurfacePorNombre(SURFACE_NAME As String) As TinSurface


        Dim docCol As Autodesk.AutoCAD.ApplicationServices.DocumentCollection = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager
        Dim aDoc As Document = docCol.MdiActiveDocument
        Dim acadDb As Database = aDoc.Database
        Dim m_Editor As Editor = aDoc.Editor
        Dim m_doc As CivilDocument = CivilApplication.ActiveDocument()

        Dim surfaceSel As TinSurface
        Dim surfaceCol As ObjectIdCollection
        Dim surfaceId As ObjectId
        Dim surf As TinSurface
        Dim auxName As String

        surfaceCol = m_doc.GetSurfaceIds

        Using m_Trans As Transaction = acadDb.TransactionManager.StartTransaction()

            For i = 0 To surfaceCol.Count - 1
                surfaceSel = surfaceCol.Item(i).GetObject(OpenMode.ForRead)
                auxName = surfaceSel.Name
                If auxName = SURFACE_NAME Then
                    surfaceId = surfaceSel.Id
                    Exit For
                End If
            Next

            surf = m_Trans.GetObject(surfaceId, OpenMode.ForRead)

            m_Trans.Commit()

        End Using

        Return surf

    End Function


    Public Shared Sub crearWDP()

        Dim drops As New ObjectIdCollection()
        Dim surfName As String
        Dim surf As TinSurface

        'Get objectID of the surface
        surfName = "ELMYA_Z1"
        surf = PV_DRENAJE_main.obtenerSurfacePorNombre(surfName)

        For Each triangle As TinSurfaceTriangle In surf.Triangles
            Dim centroid As Point2d = getTriangleCentroid(triangle)

            ' calculate water-drop for the centroid
            Dim oid As ObjectIdCollection = surf.Analysis.CreateWaterdrop(centroid, Autodesk.Civil.WaterdropObjectType.Polyline3D)

            ' Save all the water-drops
            For Each id As ObjectId In oid
                drops.Add(id)
            Next
        Next

    End Sub

    Public Shared Function getTriangleCentroid(triangle As TinSurfaceTriangle) As Point2d
        ' The centroid is calculated from the cx and cy being:
        ' cx = (v1x + v2x + v3x) / 3
        ' cy = (v1y + v2y + v3y) / 3
        Dim cx As Double = (triangle.Vertex1.Location.X + triangle.Vertex2.Location.X + triangle.Vertex3.Location.X) / 3
        Dim cy As Double = (triangle.Vertex1.Location.Y + triangle.Vertex2.Location.Y + triangle.Vertex3.Location.Y) / 3
        Return New Point2d(cx, cy)
    End Function&lt;/LI-CODE&gt;&lt;P&gt;to guide me...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 03 Mar 2023 11:07:10 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/civil-3d-customization-forum/vb-net-create-waterdrop-in-a-surface/m-p/11795696#M3951</guid>
      <dc:creator>jmmarin</dc:creator>
      <dc:date>2023-03-03T11:07:10Z</dc:date>
    </item>
    <item>
      <title>Re: vb.net Create Waterdrop in a surface</title>
      <link>https://forums.autodesk.com/t5/civil-3d-customization-forum/vb-net-create-waterdrop-in-a-surface/m-p/11796317#M3952</link>
      <description>&lt;P&gt;Your code works just fine. It creates a waterdrop from each and every TinTriangle (7000+!). The ObjectIdCollection contains the ObjectId of each of those Polyline3d entities. It does make for a cool looking surface!&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2023-03-03_7-20-39.png" style="width: 300px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1184229i4BA4BEC3997ADF34/image-size/small?v=v2&amp;amp;px=200" role="button" title="2023-03-03_7-20-39.png" alt="2023-03-03_7-20-39.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 03 Mar 2023 15:21:28 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/civil-3d-customization-forum/vb-net-create-waterdrop-in-a-surface/m-p/11796317#M3952</guid>
      <dc:creator>Jeff_M</dc:creator>
      <dc:date>2023-03-03T15:21:28Z</dc:date>
    </item>
    <item>
      <title>Re: vb.net Create Waterdrop in a surface</title>
      <link>https://forums.autodesk.com/t5/civil-3d-customization-forum/vb-net-create-waterdrop-in-a-surface/m-p/11797871#M3953</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/32637"&gt;@Jeff_M&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;thanks for your answer.&lt;/P&gt;&lt;P&gt;I am surprised because it does not work in my project... The routine ends without drawing any polyline. I attach a capture of the ObjectIdCollection "drops". You can see that each element is empty and there are no objectIDs:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jmmarin_0-1677918914827.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1184502iF5857A141D8B5354/image-size/medium?v=v2&amp;amp;px=400" role="button" title="jmmarin_0-1677918914827.png" alt="jmmarin_0-1677918914827.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;"drops" is being collecting objects but they do not have objectID. It should be the problem, but I do not know why. As you show, polylines are correctly created so "drops" should be filled with objectID...&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;</description>
      <pubDate>Sat, 04 Mar 2023 08:38:22 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/civil-3d-customization-forum/vb-net-create-waterdrop-in-a-surface/m-p/11797871#M3953</guid>
      <dc:creator>jmmarin</dc:creator>
      <dc:date>2023-03-04T08:38:22Z</dc:date>
    </item>
    <item>
      <title>Re: vb.net Create Waterdrop in a surface</title>
      <link>https://forums.autodesk.com/t5/civil-3d-customization-forum/vb-net-create-waterdrop-in-a-surface/m-p/11798454#M3954</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/5478727"&gt;@jmmarin&lt;/a&gt;&amp;nbsp;I just tested again, and it is working as expected for me. So let's check some things...what release of Civil 3D are you using? Are all Updates applied? I've tested in both C3D 2022 &amp;amp; 2023:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2023-03-04_9-46-45.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1184605iBA524C119FCD3428/image-size/medium?v=v2&amp;amp;px=400" role="button" title="2023-03-04_9-46-45.png" alt="2023-03-04_9-46-45.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2023-03-04_9-46-21.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1184606iA28909A7FD4A3727/image-size/medium?v=v2&amp;amp;px=400" role="button" title="2023-03-04_9-46-21.png" alt="2023-03-04_9-46-21.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 04 Mar 2023 17:48:50 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/civil-3d-customization-forum/vb-net-create-waterdrop-in-a-surface/m-p/11798454#M3954</guid>
      <dc:creator>Jeff_M</dc:creator>
      <dc:date>2023-03-04T17:48:50Z</dc:date>
    </item>
    <item>
      <title>Re: vb.net Create Waterdrop in a surface</title>
      <link>https://forums.autodesk.com/t5/civil-3d-customization-forum/vb-net-create-waterdrop-in-a-surface/m-p/11798474#M3955</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/32637"&gt;@Jeff_M&lt;/a&gt;.&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am using C3D 2023:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jmmarin_0-1677953081896.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1184609iF26DE89C18CF05A8/image-size/medium?v=v2&amp;amp;px=400" role="button" title="jmmarin_0-1677953081896.png" alt="jmmarin_0-1677953081896.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;It is the same that you show.&lt;/P&gt;&lt;P&gt;I have trying different options and I am not able to get a ObjectID collection as expected.&lt;/P&gt;&lt;P&gt;In order to discard issues, these are the imports that I have in the module. Do I need reference any additional library?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Imports System&lt;BR /&gt;Imports Autodesk.AutoCAD.Runtime&lt;BR /&gt;Imports Autodesk.AutoCAD.ApplicationServices&lt;BR /&gt;Imports Autodesk.AutoCAD.DatabaseServices&lt;BR /&gt;Imports Autodesk.AutoCAD.EditorInput&lt;BR /&gt;Imports Autodesk.AutoCAD.Geometry&lt;BR /&gt;Imports Autodesk.AutoCAD.DatabaseServices.ObjectId&lt;BR /&gt;Imports Autodesk.Civil.DatabaseServices.Styles&lt;BR /&gt;Imports Autodesk.Civil.ApplicationServices&lt;BR /&gt;Imports Autodesk.Civil.DatabaseServices&lt;BR /&gt;Imports Autodesk.AutoCAD.Colors&lt;BR /&gt;Imports AutoCAD&lt;BR /&gt;Imports System.Security.Cryptography.X509Certificates&lt;BR /&gt;Imports System.Windows.Forms&lt;BR /&gt;Imports Autodesk.AutoCAD.Windows&lt;BR /&gt;Imports Autodesk.AutoCAD.DatabaseServices.Filters&lt;BR /&gt;Imports System.Data.Common&lt;BR /&gt;Imports AXDBLib&lt;BR /&gt;Imports Autodesk.AutoCAD.ApplicationServices.Core&lt;BR /&gt;Imports Autodesk.Civil.Settings&lt;BR /&gt;Imports Autodesk.Aec.Geometry&lt;BR /&gt;Imports Profile = Autodesk.Civil.DatabaseServices.Profile&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks again.&lt;/P&gt;</description>
      <pubDate>Sat, 04 Mar 2023 18:10:16 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/civil-3d-customization-forum/vb-net-create-waterdrop-in-a-surface/m-p/11798474#M3955</guid>
      <dc:creator>jmmarin</dc:creator>
      <dc:date>2023-03-04T18:10:16Z</dc:date>
    </item>
    <item>
      <title>Re: vb.net Create Waterdrop in a surface</title>
      <link>https://forums.autodesk.com/t5/civil-3d-customization-forum/vb-net-create-waterdrop-in-a-surface/m-p/11798496#M3956</link>
      <description>&lt;P&gt;These are all the Imports I have.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Imports Autodesk.AutoCAD.ApplicationServices&lt;BR /&gt;Imports Autodesk.AutoCAD.DatabaseServices&lt;BR /&gt;Imports Autodesk.AutoCAD.EditorInput&lt;BR /&gt;Imports Autodesk.AutoCAD.Geometry&lt;BR /&gt;Imports Autodesk.AutoCAD.Runtime&lt;BR /&gt;Imports Autodesk.Civil.ApplicationServices&lt;BR /&gt;Imports Autodesk.Civil.DatabaseServices&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And this is how I am calling the Sub:&lt;/P&gt;
&lt;LI-CODE lang="visual-basic"&gt;    &amp;lt;CommandMethod("jmSurfaceTest")&amp;gt;
    Public Sub surfacetest()
        crearWDP()
    End Sub
&lt;/LI-CODE&gt;</description>
      <pubDate>Sat, 04 Mar 2023 18:29:57 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/civil-3d-customization-forum/vb-net-create-waterdrop-in-a-surface/m-p/11798496#M3956</guid>
      <dc:creator>Jeff_M</dc:creator>
      <dc:date>2023-03-04T18:29:57Z</dc:date>
    </item>
    <item>
      <title>Re: vb.net Create Waterdrop in a surface</title>
      <link>https://forums.autodesk.com/t5/civil-3d-customization-forum/vb-net-create-waterdrop-in-a-surface/m-p/11798510#M3957</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/32637"&gt;@Jeff_M&lt;/a&gt;.&lt;/P&gt;&lt;P&gt;I have included a&amp;nbsp;DocumentLock prior the loop and it has worked! "drops" are filled with 7000+ obtectIDs.&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have remembered that you suggested me doing that for a previous routine.&lt;/P&gt;&lt;P&gt;Just to understand (and learn), why is it required?.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards.&lt;/P&gt;</description>
      <pubDate>Sat, 04 Mar 2023 18:40:53 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/civil-3d-customization-forum/vb-net-create-waterdrop-in-a-surface/m-p/11798510#M3957</guid>
      <dc:creator>jmmarin</dc:creator>
      <dc:date>2023-03-04T18:40:53Z</dc:date>
    </item>
    <item>
      <title>Re: vb.net Create Waterdrop in a surface</title>
      <link>https://forums.autodesk.com/t5/civil-3d-customization-forum/vb-net-create-waterdrop-in-a-surface/m-p/11798529#M3958</link>
      <description>&lt;P&gt;If you are calling the tool from a form you should always lock the document. It is always a good idea when asking for help to include the fact it is being run from a form.&lt;/P&gt;</description>
      <pubDate>Sat, 04 Mar 2023 18:54:17 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/civil-3d-customization-forum/vb-net-create-waterdrop-in-a-surface/m-p/11798529#M3958</guid>
      <dc:creator>Jeff_M</dc:creator>
      <dc:date>2023-03-04T18:54:17Z</dc:date>
    </item>
    <item>
      <title>Re: vb.net Create Waterdrop in a surface</title>
      <link>https://forums.autodesk.com/t5/civil-3d-customization-forum/vb-net-create-waterdrop-in-a-surface/m-p/11798537#M3959</link>
      <description>&lt;P&gt;Ok Jeff. Understood.&lt;/P&gt;&lt;P&gt;I included the form later and I supposed it was not relevant.&lt;/P&gt;&lt;P&gt;Your help has been very useful. Thanks.&lt;/P&gt;</description>
      <pubDate>Sat, 04 Mar 2023 19:05:44 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/civil-3d-customization-forum/vb-net-create-waterdrop-in-a-surface/m-p/11798537#M3959</guid>
      <dc:creator>jmmarin</dc:creator>
      <dc:date>2023-03-04T19:05:44Z</dc:date>
    </item>
  </channel>
</rss>

