Generic Annotation Placement for a Family Showing Incorrectly in RCP?

Since I suggested the solution that won’t work, in the first place, I feel like I should provide an answer here, now that you proved that my suggestion is not valid. Here it is.

If we got some families, and you know their type ie. Dining Chair (3):

We can select all instances of that chair, obtain its location point and then place an annotation like so:

Here’s the python code:

# Copyright(c) 2019, Konrad K Sobon
# @arch_laboratory, http://archi-lab.net

import clr
clr.AddReference('ProtoGeometry')
import Autodesk.DesignScript.Geometry

clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)

clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument

clr.AddReference("RevitAPI")
from Autodesk.Revit.DB import *

import System
from System import Array
from System.Collections.Generic import *

import sys
pyt_path = r'C:\Program Files (x86)\IronPython 2.7\Lib'
sys.path.append(pyt_path)


def process_list(_func, _list):
    return map(lambda x: process_list(_func, x) if type(x) == list else _func(x), _list)

fType = UnwrapElement(IN[0])

def place_annotation(loc):
	return doc.Create.NewFamilyInstance(loc.ToXyz(), fType, doc.ActiveView)

try:
    errorReport = None
    TransactionManager.Instance.EnsureInTransaction(doc)
    output = process_list(place_annotation, IN[1])
    TransactionManager.Instance.TransactionTaskDone()
except:
    import traceback
    errorReport = traceback.format_exc()

if None == errorReport:
    OUT = output
else:
    OUT = errorReport

Here’s the result:

Please see attached for the script: familylocationtoannotation.dyn (10.6 KB)

Cheers!