'/// BuildNullHier 1.0 for XSI 3.5
'/// By Homam Bahnassi - In|Framez 2003
'--------------------------------------

set oRigItems = Application.Selection
oBuildNullHier oRigItems, ""

function oBuildNullHier (oInRigCollection, sRigModelName)
set oBuildNullHier = CreateObject("XSI.Collection")
'--- Checking input Collection...
if oInRigCollection.count = 0 then
	logmessage "BuildNullHier: Objects required..."
	exit function
end if

'--- Get the Nulls Rig Name...
if sRigModelName = "" then
	sUserRigModelName = inputbox("Enter Name for the new model","BuildNullHier","NullRig")
else
	sUserRigModelName = sRigModelName
end if

set oNullModel = ActiveSceneRoot.AddModel (, sUserRigModelName)

'--- Build new hierarchy
for each oNode in oInRigCollection
	oNull = oNullModel.AddNull(oNode.Name)
	oBuildNullHier.add oNull
next

on error resume next
for each oNode in oInRigCollection
	set oParent = oNode.Parent
	do while (Not SearchCollection(oInRigCollection,oParent.Name))
		if oParent.Parent = oParent then exit do
		Set oParent = oParent.Parent
	loop
	ParentObj oNullModel & "." & oParent.name , oNullModel & "." & oNode.Name
next
on error goto 0
end function

function SearchCollection(oInCollection,sSearchItem)
	for each oItem in oInCollection
		if sSearchItem = oItem.Name then
			SearchCollection = true
			exit function
		else SearchCollection = false
		end if
	next
end function