- // Autodesk.Civil.DatabaseServices.Network 
- public unsafe void AddCurvePipe(ObjectId pipeFamilyId, ObjectId pipeSizeId, Curve3d curve, [MarshalAs(UnmanagedType.U1)] bool clockwise, ref ObjectId newPipeId, [MarshalAs(UnmanagedType.U1)] bool applyRules) 
- { 
-         CircularArc3d circularArc3d = null; 
-         ObjectId objectId = pipeFamilyId; 
-         AcDbObjectId oid; 
-         cpblk(ref oid, &objectId, 8); 
-         ObjectId objectId2 = pipeSizeId; 
-         AcDbObjectId acDbObjectId; 
-         cpblk(ref acDbObjectId, &objectId2, 8); 
-         <Module>.Autodesk.Civil.Checker.CheckArgOid<class AeccDbPartFamilyItem>(oid, "A part family id of Autodesk.Civil.DatabaseServices.Styles.PartFamily is expected."); 
-         <Module>.Autodesk.Civil.Checker.CheckArgOid<class AeccDbPartSizeFilter>(acDbObjectId, "A part size id of Autodesk.Civil.DatabaseServices.Styles.PartSize is expected."); 
-         AeccDbTreeOid aeccDbTreeOid; 
-         cpblk(ref aeccDbTreeOid, ref oid, 8); 
-         AeccDbTreeOid styleRootOid; 
-         AcDbObjectId styleOid; 
-         string message; 
-         try 
-         { 
-                 styleRootOid = aeccDbTreeOid; 
-                 styleOid = acDbObjectId; 
-                 message = "Part size doesn't belong to the part family."; 
-         } 
-         catch 
-         { 
-                 <Module>.___CxxCallUnwindDtor(ldftn(AeccDbTreeOid.{dtor}), (void*)(&aeccDbTreeOid)); 
-                 throw; 
-         } 
-         <Module>.Autodesk.Civil.Checker.CheckArgIsChildOid(styleRootOid, styleOid, message); 
-         DbObjectReader<AeccDbPartFamilyItem,1,0> dbObjectReader<AeccDbPartFamilyItem,1,0>; 
-         <Module>.DbObjectPointer<AeccDbPartFamilyItem,0,1,0>.{ctor}(ref dbObjectReader<AeccDbPartFamilyItem,1,0>, ref oid); 
-         try 
-         { 
-                 try 
-                 { 
-                         circularArc3d = (CircularArc3d)curve; 
-                 } 
-                 catch (InvalidCastException) 
-                 { 
-                         throw new ArgumentException("The curve type should be CircularArc3d."); 
-                 } 
-                 AcDbObjectId ?kNull@AcDbObjectId@@2V1@B = <Module>.?kNull@AcDbObjectId@@2V1@B; 
-                 Point3d endPoint = circularArc3d.EndPoint; 
-                 Point3d startPoint = circularArc3d.StartPoint; 
-                 AecRmCString aecRmCString; 
-                 AecRmCString* ptr = <Module>.AeccDbPartFamilyItem.getGuid((0 == *(ref dbObjectReader<AeccDbPartFamilyItem,1,0> + 24)) ? (*(ref dbObjectReader<AeccDbPartFamilyItem,1,0> + 16)) : 0L, (AecRmCString*)(&aecRmCString)); 
-                 AeccDbGeo* impObj; 
-                 AcGePoint3d* ptr2; 
-                 AcGePoint3d* ptr3; 
-                 double radius; 
-                 try 
-                 { 
-                         impObj = base.GetImpObj(); 
-                         AcGePoint3d acGePoint3d; 
-                         ptr2 = <Module>.Autodesk.Civil.ToAcGePoint3d(&acGePoint3d, startPoint); 
-                         AcGePoint3d acGePoint3d2; 
-                         ptr3 = <Module>.Autodesk.Civil.ToAcGePoint3d(&acGePoint3d2, endPoint); 
-                         radius = circularArc3d.Radius; 
-                 } 
-                 catch 
-                 { 
-                         <Module>.___CxxCallUnwindDtor(ldftn(AecRmCString.{dtor}), (void*)(&aecRmCString)); 
-                         throw; 
-                 } 
-                 AeccNetworkErrorCode es; 
-                 <Module>.AeccDbNetwork.addCurvePipe(impObj, &es, (AecRmCString*)ptr, ref acDbObjectId, ptr2, ptr3, radius, clockwise, ref ?kNull@AcDbObjectId@@2V1@B, applyRules); 
-                 <Module>.Autodesk.Civil.Checker.Check(es, "Fail to add curve pipe."); 
-                 ObjectId objectId3 = <Module>.ToObjectId(ref ?kNull@AcDbObjectId@@2V1@B); 
-                 newPipeId = objectId3; 
-         } 
-         catch 
-         { 
-                 <Module>.___CxxCallUnwindDtor(ldftn(DbObjectReader<AeccDbPartFamilyItem,1,0>.{dtor}), (void*)(&dbObjectReader<AeccDbPartFamilyItem,1,0>)); 
-                 throw; 
-         } 
-         <Module>.DbObjectPointer<AeccDbPartFamilyItem,0,1,0>.{dtor}(ref dbObjectReader<AeccDbPartFamilyItem,1,0>); 
-         try 
-         { 
-         } 
-         catch 
-         { 
-                 <Module>.___CxxCallUnwindDtor(ldftn(DbObjectReader<AeccDbPartFamilyItem,1,0>.{dtor}), (void*)(&dbObjectReader<AeccDbPartFamilyItem,1,0>)); 
-                 throw; 
-         } 
- } 
-