There are some basic principles about the internals of Fusion you should understand. The first is how a solid is represented internally, which you can learn about in Fusion 360 Solids and Surfaces. The second is how data is structured, particularly components and occurrences in Document and Assembly Structure.
A face is bounded by edges, and edges are connected by vertices. A rectangular face will have four vertices, one at each corner, but generally, a face can be any shape and have zero to n vertices. A circular face at the end of a cylinder doesn't have any vertices.
A body exists within a component, and each component is represented as an occurrence in an assembly. You can have multiple instances of a component in the same assembly, each in a different position. When you select a face, the BRepFace returned is in the context of the root component, and querying its edges and faces will return the data relative to the world coordinate system. You don't need to do anything special. Here's some code that will print out the coordinates of each face vertex
import traceback
import adsk.fusion
import adsk.core
def run(context):
ui = adsk.core.UserInterface.cast(None)
try:
app: adsk.core.Application = adsk.core.Application.get()
ui = app.userInterface
# Face Selection
try:
sel: adsk.core.Selection = ui.selectEntity("Please select Face 1", 'PlanarFaces')
except:
# Pressing the ESC key raises an exception.
return
face: adsk.fusion.BRepFace = sel.entity
app.log(' ')
app.log('Vertex Report')
vertCount = 0
for vertex in face.vertices:
vertCount += 1
app.log(f' Vertex {vertCount}: {vertex.geometry.asArray()}')
except:
if ui:
ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))
.
---------------------------------------------------------------
Brian EkinsInventor and Fusion 360 API Expert
Website/Blog:
https://EkinsSolutions.com