def makeDrains(): drainLayers = ['openchannels', 'gravitymains', 'lateraldrains', ] drainColors = [ System.Drawing.Color.MidnightBlue, System.Drawing.Color.Blue, System.Drawing.Color.CornflowerBlue, System.Drawing.Color.SkyBlue, ] for i in range(len(drainLayers)): lyr = drainLayers[i] newName = lyr+'-projected' lyrAtt = LayerUtils.layerAttributes(newName, drainColors[i]) # make the layer # get results resultPairs = IntersectionTools.smartCurveLayerProject(lyr, 'groundsurface', lyrAtt) # bake results for pair in resultPairs: scriptcontext.doc.Objects.AddCurve(pair[0], pair[1]) # get the catchbasins srf = doc.Objects.FindByLayer('groundsurface')[0].Geometry rawPts = Smart.RhinoObjectsToSmartFeatures(doc.Objects.FindByLayer('catchbasins')) pt3ds = [pt.geom.Location for pt in rawPts] lowPts = Smart.replaceGeometries(rawPts, pt3ds) smrtPts = IntersectionTools.smartPointProject(lowPts, srf) newPts = [pt.geom for pt in smrtPts] circles = GeomTools.pointsToCircles(newPts, 0.5) smrtCircles = Smart.replaceGeometries(smrtPts, circles) lyrAtt = LayerUtils.layerAttributes('catchbasins-projected', drainColors[3]) for circle in smrtCircles: doc.Objects.AddCircle(circle.geom, circle.objAttributes(lyrAtt))
def makeProjectedFiles(idList, layerList, fileSuffix): fmask = 'C:\\amigos\\dump\\%s-%s.3dm' outMask = 'C:\\amigos\\dump\\%s-' + fileSuffix + '.3dm' types = ['site', 'terrain'] outLayers = [s + '-projected' for s in layerList] for siteId in idList: FileUtils.deleteAll() fpaths = [(fmask % (siteId, t)) for t in types] FileUtils.importFiles(fpaths) for i, layer in enumerate(layerList): lyrAtt = LayerUtils.layerAttributes(outLayers[i]) # make the layer # determine geometry type sampleGeom = LayerUtils.getLayerGeometry(layer) if len(sampleGeom) > 0: if type(sampleGeom[0]) == Point: resultPairs = IntersectionTools.smartPointLayerProject( layer, 'groundsurface', lyrAtt) # bake results for pair in resultPairs: scriptcontext.doc.Objects.AddPoint(pair[0], pair[1]) else: resultPairs = IntersectionTools.smartCurveLayerProject( layer, 'groundsurface', lyrAtt) # bake results for pair in resultPairs: scriptcontext.doc.Objects.AddCurve(pair[0], pair[1]) outPath = outMask % siteId FileUtils.exportLayers(outLayers, outPath)
def makeProjectedFiles(idList, layerList, fileSuffix): fmask = 'C:\\amigos\\dump\\%s-%s.3dm' outMask = 'C:\\amigos\\dump\\%s-'+fileSuffix+'.3dm' types = ['site', 'terrain'] outLayers = [s+'-projected' for s in layerList] for siteId in idList: FileUtils.deleteAll() fpaths = [(fmask % (siteId, t)) for t in types] FileUtils.importFiles(fpaths) for i, layer in enumerate(layerList): lyrAtt = LayerUtils.layerAttributes(outLayers[i]) # make the layer # determine geometry type sampleGeom = LayerUtils.getLayerGeometry(layer) if len(sampleGeom) > 0: if type(sampleGeom[0]) == Point: resultPairs = IntersectionTools.smartPointLayerProject(layer, 'groundsurface', lyrAtt) # bake results for pair in resultPairs: scriptcontext.doc.Objects.AddPoint(pair[0], pair[1]) else: resultPairs = IntersectionTools.smartCurveLayerProject(layer, 'groundsurface', lyrAtt) # bake results for pair in resultPairs: scriptcontext.doc.Objects.AddCurve(pair[0], pair[1]) outPath = outMask % siteId FileUtils.exportLayers(outLayers, outPath)
def makeDrains(): drainLayers = [ 'openchannels', 'gravitymains', 'lateraldrains', ] drainColors = [ System.Drawing.Color.MidnightBlue, System.Drawing.Color.Blue, System.Drawing.Color.CornflowerBlue, System.Drawing.Color.SkyBlue, ] for i in range(len(drainLayers)): lyr = drainLayers[i] newName = lyr + '-projected' lyrAtt = LayerUtils.layerAttributes(newName, drainColors[i]) # make the layer # get results resultPairs = IntersectionTools.smartCurveLayerProject( lyr, 'groundsurface', lyrAtt) # bake results for pair in resultPairs: scriptcontext.doc.Objects.AddCurve(pair[0], pair[1]) # get the catchbasins srf = doc.Objects.FindByLayer('groundsurface')[0].Geometry rawPts = Smart.RhinoObjectsToSmartFeatures( doc.Objects.FindByLayer('catchbasins')) pt3ds = [pt.geom.Location for pt in rawPts] lowPts = Smart.replaceGeometries(rawPts, pt3ds) smrtPts = IntersectionTools.smartPointProject(lowPts, srf) newPts = [pt.geom for pt in smrtPts] circles = GeomTools.pointsToCircles(newPts, 0.5) smrtCircles = Smart.replaceGeometries(smrtPts, circles) lyrAtt = LayerUtils.layerAttributes('catchbasins-projected', drainColors[3]) for circle in smrtCircles: doc.Objects.AddCircle(circle.geom, circle.objAttributes(lyrAtt))