首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Revit 2014中插入面托管嵌套家庭实例时忽略Z坐标

在Revit 2014中插入面托管嵌套家庭实例时忽略Z坐标
EN

Stack Overflow用户
提问于 2014-07-16 10:11:43
回答 1查看 325关注 0票数 0

我试图插入一个面部托管家庭,其中包含一个空白挤压在一个通用的特种设备家族。设想如下:

  • 在“父”家族中,有一个Z= 100 mm,高度=40 mm的矩形挤压;挤压是以编程方式创建的。
  • 我有一个简单的空圆柱体的.rfa。这个rfa是一个Generic model家族,我已经将"Cut with voids“设置为真
  • 我想在父母家庭中插入这个空虚家庭的一个实例,以便刺穿挤压。

我使用的代码如下:

代码语言:javascript
复制
        Options opt = _commandData.Application.Application.Create.NewGeo​metryOptions();
        opt.ComputeReferences = true;
        var geo = shelf.get_Geometry(opt);//shelf is the extrusion
//location = 0,-800,100
//width = 1000
//depth = 800
//height = 140
//all measures are mm
        PlanarFace pf = null;
        foreach (GeometryObject obj in geo)
        {
            Solid solid = obj as Solid;

            if (null != solid)
            {
                foreach (Face face in solid.Faces)
                {
                    pf = face as PlanarFace;
                    if (null != pf)
                    {
                        XYZ normal = pf.Normal.Normalize();
                        if (0.0 < normal.Z && normal.X < 1 && normal.Y < 1)
                        {
                            break;
                        }
                    }
                }
            }
        }
        if (pf != null)
        {
            var location = new XYZ(50D.ToRevitMeasure(), -100D.ToRevitMeasure(), 140D.ToRevitMeasure());
            var referenceDirection = XYZ.BasisX;
            FamilySymbol symbol = null;
            RevitBaseUtilities.DoSomethingInsideTransaction(() => familyDocument.LoadFamilySymbol(holeFileName, Path.GetFileNameWithoutExtension(holeFileName),
                                                                                                  new FamilyLoadingDontOverwriteOption(), out symbol), familyDocument);


            FamilyInstance inst;
            RevitBaseUtilities.DoSomethingInsideTransaction(() => inst = familyDocument.FamilyCreate.NewFamilyInstance(pf, location, referenceDirection , symbol), familyDocument);

            familyDocument.SaveAs(resultFileName);
            familyDocument.Close(false);

问题是汽缸总是放置在Z=0中。如有必要,我可以发送洞族和结果项目。

EN

回答 1

Stack Overflow用户

发布于 2014-07-17 21:16:55

如果我理解您所做的工作是正确的,您可能希望使用从引用/元素继承的GlobalPoint属性,而不是PlanarFace.Normal项。或者至少将其包含在您的实现中,这样您也可以获取所引用的项目的XYZ。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24778141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档