在一年中的大部分时间里,我一直在努力解决这个问题。 正如标题所说,我希望从墙的一侧到开口的两侧(门开口),然后在墙的另一端(垂直和水平)终止。我也想对所有在墙上举办的家庭进行评估,但我已经能够使用ScottWilson的voodo魔术助手课程来实现这一目标。在此处找到:http://thebuildingcoder.typepad.com/blog/2016/04/stable-reference-string-magic-voodoo.html
foreach (ElementId ele in selSet) {
FamilyInstance fi = doc.GetElement(ele) as FamilyInstance;
Reference reference = ScottWilsonVoodooMagic.GetSpecialFamilyReference(fi,ScottWilsonVoodooMagic.SpecialReferenceType.CenterLR,doc);
refs.Append(reference);
pts[i] = ( fi.Location as LocationPoint ).Point;
i++;
}
XYZ offset = new XYZ(0,0,4);
Line line = Line.CreateBound( pts[0]+offset, pts[selSet.Count - 1]+offset );
using( Transaction t = new Transaction( doc ) )
{
t.Start( "dimension embeds" );
Dimension dim = doc.Create.NewDimension(doc.ActiveView, line, refs );
t.Commit();
}
问题在于确定对墙面的适当稳定参考。我能够找到墙上的所有面孔,但这给了我100多个面孔进行分类。
如果有人能帮助我,我将不胜感激!
旁注:最接近的是使用通过我的面板投射光线跟踪,然后使用参考间隔方法来确定参考。但我真的很难实现:http://thebuildingcoder.typepad.com/blog/2015/12/retrieving-wall-openings-and-sorting-points.html
答案 0 :(得分:1)
这两个帖子应该足以解决您的所有问题:
基本上,您需要获取要附加尺寸标注的面或边的参考。这些参考文献可以通过几种方式获得。两种常见且简单的方法是: