<?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: Collect all BRep Bodies to Create a Pattern in Fusion API and Scripts Forum</title>
    <link>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/collect-all-brep-bodies-to-create-a-pattern/m-p/8337716#M15334</link>
    <description>&lt;P&gt;Yes, that's exactly what I was looking for. I found an example of adding bodies one by one in a for loop - thanks for the help.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;for k in range(0, rootComp.bRepBodies.count):&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;inputEntites2.add(rootComp.bRepBodies.item(k))&lt;/P&gt;</description>
    <pubDate>Tue, 16 Oct 2018 14:01:34 GMT</pubDate>
    <dc:creator>Lawsmith408</dc:creator>
    <dc:date>2018-10-16T14:01:34Z</dc:date>
    <item>
      <title>Collect all BRep Bodies to Create a Pattern</title>
      <link>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/collect-all-brep-bodies-to-create-a-pattern/m-p/8336323#M15332</link>
      <description>&lt;P&gt;Hopefully this is an easy one!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm trying to create a 3D array of BRep cube bodies. I want the array to be 3 x 4 x 5 bodies (60 bodies in total).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm using a "rectangular pattern" example to create a 3 x 4 array of cubes in the XY plane. Then, I want to collect all the cubes in the root component do a 1D pattern in the Z direction.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can't figure out how to actually add all the bodies from the first rectangular pattern to the input objects for the second 1D pattern operation. I see a way to grab one of them using rootComp.BRepbodies.item(n) where 0&amp;lt;n+1&amp;lt;11. Is there something I can use to add all the existing bodies at once? I tried&amp;nbsp;&lt;SPAN&gt;rootComp.BRepbodies.item(*),&amp;nbsp;rootComp.BRepbodies.item(:),&amp;nbsp;rootComp.BRepbodies.item(all), but those didn't seem to work.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;here is my code:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;import adsk.core, adsk.fusion, traceback&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;def run(context):&lt;/P&gt;&lt;P&gt;ui = None&lt;/P&gt;&lt;P&gt;try:&lt;/P&gt;&lt;P&gt;app = adsk.core.Application.get()&lt;/P&gt;&lt;P&gt;ui = app.userInterface&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;# Create a document.&lt;/P&gt;&lt;P&gt;doc = app.documents.add(adsk.core.DocumentTypes.FusionDesignDocumentType)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;product = app.activeProduct&lt;/P&gt;&lt;P&gt;design = adsk.fusion.Design.cast(product)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;# Get the root component of the active design.&lt;/P&gt;&lt;P&gt;rootComp = design.rootComponent&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;# Create sketch&lt;/P&gt;&lt;P&gt;sketches = rootComp.sketches&lt;/P&gt;&lt;P&gt;sketch = sketches.add(rootComp.xZConstructionPlane)&lt;/P&gt;&lt;P&gt;lines = sketch.sketchCurves.sketchLines;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;# Draw a rectangle by two points.&lt;/P&gt;&lt;P&gt;recLines = lines.addTwoPointRectangle(adsk.core.Point3D.create(0, 0, 0), adsk.core.Point3D.create(1, 1, 0))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;# Get the profile defined by the circle.&lt;/P&gt;&lt;P&gt;prof = sketch.profiles.item(0)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;# Create an extrusion input&lt;/P&gt;&lt;P&gt;extrudes = rootComp.features.extrudeFeatures&lt;/P&gt;&lt;P&gt;extInput = extrudes.createInput(prof, adsk.fusion.FeatureOperations.NewBodyFeatureOperation)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;# Define that the extent is a distance extent of 5 cm.&lt;/P&gt;&lt;P&gt;distance = adsk.core.ValueInput.createByReal(1)&lt;/P&gt;&lt;P&gt;extInput.setDistanceExtent(False, distance)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;# Create the extrusion.&lt;/P&gt;&lt;P&gt;ext = extrudes.add(extInput)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;# Get the body created by extrusion&lt;/P&gt;&lt;P&gt;body = ext.bodies.item(0)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;# Create input entities for rectangular pattern&lt;/P&gt;&lt;P&gt;inputEntites = adsk.core.ObjectCollection.create()&lt;/P&gt;&lt;P&gt;inputEntites.add(body)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;# Get x and y axes for rectangular pattern&lt;/P&gt;&lt;P&gt;xAxis = rootComp.xConstructionAxis&lt;/P&gt;&lt;P&gt;yAxis = rootComp.yConstructionAxis&lt;/P&gt;&lt;P&gt;zAxis = rootComp.zConstructionAxis&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;# Quantity and distance&lt;/P&gt;&lt;P&gt;quantityOne = adsk.core.ValueInput.createByString('3')&lt;/P&gt;&lt;P&gt;distanceOne = adsk.core.ValueInput.createByString('1 cm')&lt;/P&gt;&lt;P&gt;quantityTwo = adsk.core.ValueInput.createByString('4')&lt;/P&gt;&lt;P&gt;distanceTwo = adsk.core.ValueInput.createByString('1 cm')&lt;/P&gt;&lt;P&gt;quantityThree = adsk.core.ValueInput.createByString('5')&lt;/P&gt;&lt;P&gt;distanceThree = adsk.core.ValueInput.createByString('1 cm')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;# Create the input for rectangular pattern&lt;/P&gt;&lt;P&gt;rectangularPatterns = rootComp.features.rectangularPatternFeatures&lt;/P&gt;&lt;P&gt;rectangularPatternInput = rectangularPatterns.createInput(inputEntites, xAxis, quantityOne, distanceOne, adsk.fusion.PatternDistanceType.SpacingPatternDistanceType)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;# Set the data for second direction&lt;/P&gt;&lt;P&gt;rectangularPatternInput.setDirectionTwo(yAxis, quantityTwo, distanceTwo)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;# Create the rectangular pattern&lt;/P&gt;&lt;P&gt;rectangularFeature = rectangularPatterns.add(rectangularPatternInput)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;# Second pattern&lt;/P&gt;&lt;P&gt;inputEntites2 = adsk.core.ObjectCollection.create()&lt;/P&gt;&lt;P&gt;inputEntites2.add(rootComp.bRepBodies.item(all))&lt;/P&gt;&lt;P&gt;rectangularPatternInput2 = rectangularPatterns.createInput(inputEntites2, zAxis, quantityThree, distanceThree, adsk.fusion.PatternDistanceType.SpacingPatternDistanceType)&lt;/P&gt;&lt;P&gt;rectangularFeature2 = rectangularPatterns.add(rectangularPatternInput2)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;except:&lt;/P&gt;&lt;P&gt;if ui:&lt;/P&gt;&lt;P&gt;ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))&lt;/P&gt;</description>
      <pubDate>Tue, 16 Oct 2018 01:47:11 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/collect-all-brep-bodies-to-create-a-pattern/m-p/8336323#M15332</guid>
      <dc:creator>Lawsmith408</dc:creator>
      <dc:date>2018-10-16T01:47:11Z</dc:date>
    </item>
    <item>
      <title>Re: Collect all BRep Bodies to Create a Pattern</title>
      <link>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/collect-all-brep-bodies-to-create-a-pattern/m-p/8336628#M15333</link>
      <description>I think you are looking for a method on BrepBodies which returns a collection object containing all bodies. No such method exists at present and only way is to create a collection object explicitly and add each body one by one.</description>
      <pubDate>Tue, 16 Oct 2018 06:55:58 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/collect-all-brep-bodies-to-create-a-pattern/m-p/8336628#M15333</guid>
      <dc:creator>goyals</dc:creator>
      <dc:date>2018-10-16T06:55:58Z</dc:date>
    </item>
    <item>
      <title>Re: Collect all BRep Bodies to Create a Pattern</title>
      <link>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/collect-all-brep-bodies-to-create-a-pattern/m-p/8337716#M15334</link>
      <description>&lt;P&gt;Yes, that's exactly what I was looking for. I found an example of adding bodies one by one in a for loop - thanks for the help.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;for k in range(0, rootComp.bRepBodies.count):&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;inputEntites2.add(rootComp.bRepBodies.item(k))&lt;/P&gt;</description>
      <pubDate>Tue, 16 Oct 2018 14:01:34 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/collect-all-brep-bodies-to-create-a-pattern/m-p/8337716#M15334</guid>
      <dc:creator>Lawsmith408</dc:creator>
      <dc:date>2018-10-16T14:01:34Z</dc:date>
    </item>
  </channel>
</rss>

