You can also just use type to compare so:
# Fusion360API Python script
import traceback
import adsk.fusion, adsk.core, adsk.drawing
def run(context):
ui: adsk.core.UserInterface = None
try:
app: adsk.core.Application = adsk.core.Application.get()
ui = app.userInterface
docType: type = type(app.activeDocument)
if docType is adsk.drawing.DrawingDocument:
msg = '.f2d'
elif docType is adsk.fusion.FusionDocument:
msg = '.f3d or .f3z'
else:
msg = 'pcb'
ui.messageBox(msg)
except:
if ui: ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))
Or you can use the 'isinstance' func:
# Fusion360API Python script
import traceback
import adsk.fusion, adsk.core, adsk.drawing
def run(context):
ui: adsk.core.UserInterface = None
try:
app: adsk.core.Application = adsk.core.Application.get()
ui = app.userInterface
doc: adsk.core.Document = app.activeDocument
if isinstance(doc,adsk.drawing.DrawingDocument):
msg = '.f2d'
elif isinstance(doc,adsk.fusion.FusionDocument):
msg = '.f3d or .f3z'
else:
msg = 'pcb'
ui.messageBox(msg)
except:
if ui: ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))
Im sure there's a slight difference in the performance of each, however for general purposes, they are all functionally equivalent.