Quantcast
Channel: Scripting - McNeel Forum
Viewing all articles
Browse latest Browse all 5743

Insert Every Block Instance on Document?

$
0
0

@ShynnSup wrote:

Hi people,

I am currently needing to insert every block definition within a document.

I found this: Which replaces every point with the same block. I tried to change it to instead of inserting the same block, go cycling along each block definition, but no luck so far.

' Replaces points with blocks
Sub ReplacePointsWithBlocks

  ' Select points to replace with a block
  Dim arrObjects
  arrObjects = Rhino.GetObjects("Select points to replace with a block", 1, True, True)
  If Not IsArray(arrObjects) Then Exit Sub

  ' Get the names of all block definitions in the document    
  Dim arrBlocks
  arrBlocks = Rhino.BlockNames(True)
  If Not IsArray(arrBlocks) Then
    Rhino.Print "No block definitions found in the document."
    Exit Sub
  End If

  ' Select a block name from a list
  Dim strBlock
  strBlock = Rhino.ListBox(arrBlocks, "Select block", "Replace Points")
  If IsNull(strBlock) Then Exit Sub

  ' Turn off redrawing (faster)
  Rhino.EnableRedraw True      

  ' Process each selected point object
  Dim strObject, arrPoint
  For Each strObject In arrObjects
    ' Get the point object's coordinates
    arrPoint = Rhino.PointCoordinates(strObject)
    ' Insert the block at that location
    Rhino.InsertBlock strBlock, arrPoint
  Next

  ' Delete all of the point objects
  Rhino.DeleteObjects arrObjects   

  ' Turn redrawing back on     
  Rhino.EnableRedraw True      

End Sub

Posts: 6

Participants: 2

Read full topic


Viewing all articles
Browse latest Browse all 5743

Trending Articles