AEC DevBlog(Revit二次開発)-一方の面の法線方向を取得する

572 ワード

原文リンク:Getting the normal direction of a face
に質問
PlanarFaceを使うとNormalアトリビュートがフェースの法線を取得するとき、私の法線はいくつかのフェースにとって実際のフェースの方向とは逆になります.
foreach (Face face in solid.Faces)
{
	PlanarFace planarFace = face as PlanarFace;


	if (planarFace != null)
	{
		Trace.WriteLine("Normal=" + planarFace.Normal.ToString());
	}
}

解決策
面の法線方向を取得するにはPlanarFaceを使用します.ComputeNormal()メソッドでは、次のコードでフェースの原点で法線を取得します.
XYZ normal = planarFace.ComputeNormal(new UV(planarFace.Origin.X, planarFace.Origin.Y));