Dim aDoc As AssemblyDocument = TryCast(ThisApplication.ActiveDocument, AssemblyDocument) If IsNothing(aDoc) Then Logger.Debug("Not Run In Assembly Document") : Exit Sub Dim PickUCS As UserCoordinateSystem = ThisApplication.CommandManager.Pick(SelectionFilterEnum.kUserCoordinateSystemFilter, "Select UCS to move") If IsNothing(PickUCS) Then Exit Sub ' If nothing gets selected then we're done Dim PickUCStarget As UserCoordinateSystem = ThisApplication.CommandManager.Pick(SelectionFilterEnum.kUserCoordinateSystemFilter, "Select UCS to set Position") If IsNothing(PickUCStarget) Then Exit Sub ' If nothing gets selected then we're done Dim TransformMatrix As Matrix = PickUCStarget.Transformation.Copy If PickUCStarget.Type = ObjectTypeEnum.kUserCoordinateSystemProxyObject TransformMatrix.TransformBy(PickUCStarget.ContainingOccurrence.Transformation) End If PickUCS.Transformation = TransformMatrix aDoc.ComponentDefinition.Constraints.AddFlushConstraint(PickUCStarget.XYPlane, PickUCS.XYPlane, 0) aDoc.ComponentDefinition.Constraints.AddFlushConstraint(PickUCStarget.XZPlane, PickUCS.XZPlane, 0) aDoc.ComponentDefinition.Constraints.AddFlushConstraint(PickUCStarget.YZPlane, PickUCS.YZPlane, 0)