ADN Open CIS
Сообщество программистов Autodesk в СНГ

30/11/2018

Получение положения опорной плоскости из экземпляра семейства

Вопрос: Возможно ли получить положение опорной плоскости экземпляра семейства?

Мне нужно знать её нормаль и положение. Я пытался использовать ReferenceIntersector, но он её не определяет.

Ответ: Вы можете посмотреть, как определить нормаль или направление опорной линии в этой дискуссии. Это позволит Вам определить нормаль, тем не менее, из размера в обсуждаемом коде, вы также можете определить точку на плоскости.

С другой стороны, есть альтернативный способ: Вы можете создать опорную плоскость, используя reference, и из этой плоскости получить начало координат и нормаль.

Код - C#: [Выделить]
  1.  
  2. static bool GetFamilyInstanceReferencePlaneLocation(FamilyInstance fi, out XYZ origin, out XYZ normal)
  3. {
  4.                 bool found = false;
  5.                
  6.                 origin = XYZ.Zero;
  7.                 normal = XYZ.Zero;
  8.  
  9.                 Reference r = fi
  10.                                .GetReferences(FamilyInstanceReferenceType.Left)
  11.                                .FirstOrDefault();
  12.  
  13.                 if(null != r)
  14.                 {
  15.                                Document doc = fi.Document;
  16.  
  17.                                using(Transaction t = new Transaction(doc))
  18.                                {
  19.                                                t.Start("Create Temporary Sketch Plane");
  20.                                                SketchPlane sk = SketchPlane.Create(doc, r);
  21.                                                if(null != sk )
  22.                                                {
  23.                                                                Plane pl = sk.GetPlane();
  24.                                                                origin = pl.Origin;
  25.                                                                normal = pl.Normal;
  26.                                                                found = true;
  27.                                                }
  28.                                                t.RollBack();
  29.                                }
  30.                 }
  31.                
  32.                 return found;
  33. }
  34.  

 

Источник: https://thebuildingcoder.typepad.com/blog/2018/09/icon-access-and-reference-plane-in-family-instance.html#3

Автор перевода: Александр Игнатович

Обсуждение: http://adn-cis.org/forum/index.php?topic=

Опубликовано 30.11.2018
Отредактировано 30.11.2018 в 20:47:40