Clear["Global`"]
( Bicone properties *)
r = 1;
orig = {x1, y1, z1};
vertex1 = {x2, y2, z2};
vertex2 = {x2, y2, -z2};
cone1 = Cone[{orig, vertex1}, r];
cone2 = Cone[{orig, vertex2}, r];
bicone = {cone1, cone2};
Graphics3D[bicone] /. {orig → {0, 0, 0}, vertex1 → {0, 0, 1},
vertex2 → {0, 0, 1}}
I see just a cone instead of a bicone although in vertex2 the z-coordinate is negative. The result is the same either I apply the rule inside or outside of Graphics3D.
Packing with cones.nb (83.6 KB)