コード例 #1
0
        // Token: 0x06000194 RID: 404 RVA: 0x0000B098 File Offset: 0x00009298
        protected double GetActualSpacingForUnitechnik(RevitElement <RebarInSystem> rebar, short angle)
        {
            int    numberOfBarPositions = rebar.Element.NumberOfBarPositions;
            bool   flag = numberOfBarPositions < 2;
            double result;

            if (flag)
            {
                result = 0.0;
            }
            else
            {
                bool flag2 = rebar.Element.DoesBarExistAtPosition(0);
                bool flag3 = !flag2 && (numberOfBarPositions < 3 || !rebar.Element.DoesBarExistAtPosition(2));
                if (flag3)
                {
                    result = 0.0;
                }
                else
                {
                    Transform barPositionTransform  = rebar.Element.GetBarPositionTransform(flag2 ? 0 : 1);
                    Transform barPositionTransform2 = rebar.Element.GetBarPositionTransform(flag2 ? 1 : 2);
                    result = base.GetActualSpacingForUnitechnik(barPositionTransform, barPositionTransform2, angle);
                }
            }
            return(result);
        }
コード例 #2
0
        // Token: 0x060001EB RID: 491 RVA: 0x0000D8A8 File Offset: 0x0000BAA8
        public override double GetSteelVolumeInPart(RevitElement <Part> part, ItSolid partSolid)
        {
            Rebar  element = this.Rebar.Element;
            double radius  = base.RebarBarType.BarDiameter / 2.0;
            int    num;
            int    num2;

            SteelGroupElementRebar.GetRebarIndices(element, out num, out num2);
            double num3 = 0.0;
            int    num4;

            for (int i = num; i < num2; i = num4 + 1)
            {
                List <Curve>     centerLineCurvesForVolumeCalculation = SteelGroupElementRebar.GetCenterLineCurvesForVolumeCalculation(this.Rebar, i);
                List <CurveLoop> sweepProfile = SteelGroupElementRebar.GetSweepProfile(centerLineCurvesForVolumeCalculation, radius);
                bool             flag         = sweepProfile.none <CurveLoop>();
                if (!flag)
                {
                    Solid solid = SteelGroupElementRebar.GetSolid(centerLineCurvesForVolumeCalculation, sweepProfile);
                    bool  flag2 = solid == null;
                    if (!flag2)
                    {
                        Solid solid2 = solid.intersect(partSolid.Solid);
                        bool  flag3  = solid2 == null || solid2.Volume.Lt(0.0, -1.0);
                        if (!flag3)
                        {
                            num3 += solid2.Volume;
                        }
                    }
                }
                num4 = i;
            }
            return(num3);
        }
コード例 #3
0
 // Token: 0x0600056C RID: 1388 RVA: 0x000156F8 File Offset: 0x000138F8
 public DbwElementData(ItGeMatrix3d matWcsToPalette, RevitElement <Part> firstShell, RevitElement <Part> secondShell)
 {
     ItDebug.assert(matWcsToPalette != null && firstShell != null && secondShell != null, "Failure in: ");
     this.MatWcsToPalette = matWcsToPalette;
     this.FirstShell      = new ItMachineDataWallDB.DbwElementData.Shell(ItMachineDataWallDB.DoubleWallMode.FirstShell, firstShell);
     this.SecondShell     = new ItMachineDataWallDB.DbwElementData.Shell(ItMachineDataWallDB.DoubleWallMode.SecondShell, secondShell);
 }
コード例 #4
0
        public RevitElement RevitElementToSpeckle(Element revitElement)
        {
            var symbol = Doc.GetElement(revitElement.GetTypeId()) as FamilySymbol;

            RevitElement speckleElement = new RevitElement();

            if (symbol != null)
            {
                speckleElement.family = symbol.FamilyName;
                speckleElement.type   = symbol.Name;
            }
            else
            {
                speckleElement.type = revitElement.Name;
            }

            speckleElement.category    = revitElement.Category.Name;
            speckleElement.displayMesh = GetElementDisplayMesh(revitElement, new Options()
            {
                DetailLevel = ViewDetailLevel.Fine, ComputeReferences = false
            });

            //Only send elements that have a mesh, if not we should probably support them properly via direct conversions
            if (speckleElement.displayMesh == null || !speckleElement.displayMesh.vertices.Any())
            {
                return(null);
            }

            GetAllRevitParamsAndIds(speckleElement, revitElement);

            return(speckleElement);
        }
コード例 #5
0
        // Token: 0x060000F3 RID: 243 RVA: 0x000094E0 File Offset: 0x000076E0
        protected override bool IsMountPartOfThisShell(RevitElement <FamilyInstance> mountingPart, RevitElement <Part> part)
        {
            bool flag = mountingPart.Element.getHostId() == part.Id;
            bool result;

            if (flag)
            {
                result = true;
            }
            else
            {
                List <ItSolid> solids = ItSolid.getSolids(mountingPart, ItGeMatrix3d.kIdentity, false);
                bool           flag2  = solids.none <ItSolid>();
                if (flag2)
                {
                    ItFailures.PostFailure(ItFailures.CAMMountPartInUnknownShell, mountingPart.Id);
                    result = (part.shellType() == ShellType.FirstShell);
                }
                else
                {
                    result = this.hasSolidIntersection(part, solids);
                }
            }
            return(result);
        }
コード例 #6
0
        // Token: 0x060000D8 RID: 216 RVA: 0x00008F98 File Offset: 0x00007198
        protected override MountingPartData getOpeningData(RevitElement <Opening> opening, RevitElement <Part> part)
        {
            Floor        floor         = part.getFloor();
            ItGeVector3d viewDirection = -floor.normal(false);

            return(base.GetOpeningData(opening, part, viewDirection));
        }
コード例 #7
0
        // Token: 0x06000241 RID: 577 RVA: 0x0000F9A8 File Offset: 0x0000DBA8
        public override double GetSteelVolumeInPart(RevitElement <Part> part, ItSolid partSolid)
        {
            IEnumerable <double> source = from wire in base.WireItemsMinor.Union(base.WireItemsMajor)
                                          select wire.GetSteelVolumeInPart(partSolid);

            return(source.Sum());
        }
コード例 #8
0
        // Token: 0x060000EA RID: 234 RVA: 0x000092AC File Offset: 0x000074AC
        protected override MountingPartData getDoorWindowData(RevitElement <FamilyInstance> familyInstance, RevitElement <Part> part)
        {
            ItGeBoundBlock3d   localExtents  = familyInstance.Element.getLocalExtents();
            ItGeVector3d       viewDirection = base.getViewDirection();
            ItGeMatrix3d       ecsToWcs      = familyInstance.Element.ecs();
            bool               flag;
            List <ItGePoint3d> contourFromElement = ItMachineDataBase.getContourFromElement(familyInstance.To <Element>(), part, ecsToWcs, viewDirection, out flag);
            bool               flag2 = contourFromElement.none <ItGePoint3d>() || contourFromElement.Count < 3;
            MountingPartData   result;

            if (flag2)
            {
                ItFailures.PostFailure(ItFailures.CAMObjectWithoutValidGeometry, familyInstance.Id);
                result = null;
            }
            else
            {
                contourFromElement.transformBy(base.MatWcsToPalette);
                localExtents.transformBy(base.MatWcsToPalette);
                MountingPartData mountingPartData = new MountingPartData
                {
                    ElementId = familyInstance.Id,
                    Contour   = contourFromElement,
                    Height    = localExtents.maxPoint.z - localExtents.minPoint.z,
                    IsOpeningWithoutGeometry = !flag,
                    Type = MountingPartData.Types.DoorWindow,
                    InstallationHeight = localExtents.minPoint.z,
                    Name     = familyInstance.Element.Name,
                    UniqueId = familyInstance.UniqueId
                };
                result = mountingPartData;
            }
            return(result);
        }
コード例 #9
0
        // Token: 0x060000EB RID: 235 RVA: 0x000093D0 File Offset: 0x000075D0
        protected override MountingPartData getOpeningData(RevitElement <Opening> opening, RevitElement <Part> part)
        {
            Wall         wall          = part.getWall();
            ItGeVector3d viewDirection = wall.yAxis();

            return(base.GetOpeningData(opening, part, viewDirection));
        }
コード例 #10
0
        // Token: 0x060000E9 RID: 233 RVA: 0x000091B8 File Offset: 0x000073B8
        protected internal override void InitializeFromAssembly(AssemblyInstance assemblyInstance)
        {
            bool flag = assemblyInstance == null;

            if (!flag)
            {
                Wall                wall         = assemblyInstance.getMainElement() as Wall;
                ItGeMatrix3d        mat          = ItGeMatrix3d.rotation(-1.5707963267948966, ItGeVector3d.kXAxis, ItGePoint3d.kOrigin);
                ItGeMatrix3d        itGeMatrix3d = ItGeMatrix3d.translation(new ItGeVector3d(0.0, 0.0, wall.thickness()));
                Position            position     = Position.Undefined;
                RevitElement <Part> part         = assemblyInstance.getPart(null);
                bool                flag2        = part.isNotNull();
                if (flag2)
                {
                    position = part.getViewsidePosition();
                }
                ItGeMatrix3d mat2  = ItGeMatrix3d.kIdentity;
                bool         flag3 = position != Position.Right;
                if (flag3)
                {
                    ItGeBoundBlock3d localExtents = assemblyInstance.getLocalExtents();
                    ItGePoint3d      itGePoint3d  = localExtents.midPoint;
                    itGePoint3d = itGeMatrix3d * mat * itGePoint3d;
                    mat2        = ItGeMatrix3d.rotation(3.1415926535897931, ItGeVector3d.kYAxis, itGePoint3d);
                }
                base.MatAssemblyToPalette = mat2 * itGeMatrix3d * mat;
                base.InitializeFromAssembly(assemblyInstance);
            }
        }
コード例 #11
0
        // Token: 0x0600018D RID: 397 RVA: 0x0000ACEC File Offset: 0x00008EEC
        internal new static SteelGroupElementAreaReinf GetInstance(RevitElement <RebarInSystem> rebarInSystem, ItMachineDataBase.CNCElementData cncElementData, ItGeMatrix3d matWcsToPalette)
        {
            bool flag = rebarInSystem.IsInvalid();
            SteelGroupElementAreaReinf result;

            if (flag)
            {
                result = null;
            }
            else
            {
                SteelGroupElementAreaReinf steelGroupElementAreaReinf = new SteelGroupElementAreaReinf(cncElementData, matWcsToPalette);
                steelGroupElementAreaReinf.RebarInSystem = rebarInSystem;
                steelGroupElementAreaReinf.Host          = rebarInSystem.Element.getHostingPart();
                bool flag2 = steelGroupElementAreaReinf.Host == null;
                if (flag2)
                {
                    result = null;
                }
                else
                {
                    steelGroupElementAreaReinf.AreaReinforcement = (rebarInSystem.Document.GetElement(rebarInSystem.Element.SystemId) as AreaReinforcement);
                    steelGroupElementAreaReinf.RebarBarType      = (rebarInSystem.Document.GetElement(rebarInSystem.Element.GetTypeId()) as RebarBarType);
                    steelGroupElementAreaReinf.Data = (steelGroupElementAreaReinf.AreaReinforcement.load <ItReinforcement>(null, false) ?? SteelGroupElement.GetEmptyData(steelGroupElementAreaReinf));
                    steelGroupElementAreaReinf.IronSetsSchematic = rebarInSystem.Element.getIronSets(RebarMode.Schematic);
                    steelGroupElementAreaReinf.IronSetsRealistic = rebarInSystem.Element.getIronSets(RebarMode.Realistic);
                    steelGroupElementAreaReinf.TransformToPalette();
                    steelGroupElementAreaReinf.SetMinMaxZ(steelGroupElementAreaReinf.IronSetsRealistic);
                    steelGroupElementAreaReinf.SetGroup();
                    result = steelGroupElementAreaReinf;
                }
            }
            return(result);
        }
コード例 #12
0
        private void readElements()
        {
            using (SQLiteConnection conn = new SQLiteConnection("Data Source=" + _dbFilename + ";Version=3;"))
            {
                conn.Open();

                var cmd = conn.CreateCommand();
                cmd.CommandText = "select id,entity_id,attribute_id,value_id FROM _objects_eav";

                using (SQLiteDataReader reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        int entity_id    = reader.GetInt32(1);
                        int attribute_id = reader.GetInt32(2);
                        int value_id     = reader.GetInt32(3);

                        if (_idValues.ContainsKey(entity_id) == false)
                        {
                            _idValues[entity_id] = new RevitElement()
                            {
                                ElementId = entity_id
                            }
                        }
                        ;

                        _idValues[entity_id].ParameterValueIds[attribute_id]          = value_id;
                        _idValues[entity_id].Parameters[_parameterDict[attribute_id]] = _valueDict[value_id];
                    }
                }


                /// read the ID information for each element.
                cmd             = conn.CreateCommand();
                cmd.CommandText = "select id,external_id,category,isType FROM _objects_id";
                using (SQLiteDataReader reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        int id = reader.GetInt32(0);
                        if (_idValues.ContainsKey(id) == false)
                        {
                            _idValues[id] = new RevitElement()
                            {
                                ElementId = id
                            }
                        }
                        ;
                        string guid   = reader.GetString(1);
                        string cat    = reader.GetString(2);
                        int    isType = reader.GetInt32(3);

                        var elem = _idValues[id];
                        elem.Category = cat;
                        elem.UniqueId = guid;
                        elem.IsType   = (isType == 1);
                    }
                }
            }
        }
コード例 #13
0
ファイル: DbObject.cs プロジェクト: yk35/RevitObjectsHelper
        /// <summary>
        /// Coping parameters  values from Revit elements to wrapper class properties
        /// </summary>
        private void Init()
        {
            foreach (var info in GetType().GetProperties())
            {
                var parameterName = GetParameterName(info);

                if (parameterName == null)
                {
                    continue;
                }

                Parameter parameter = null;
                switch (parameterName)
                {
                case BuiltInParameter builtInParameter:
                    parameter = RevitElement.FindParameter(builtInParameter);
                    break;

                case string pName:
                    parameter = RevitElement.FindParameter(pName);
                    break;
                }

                SetProperty(info, parameter);
            }
        }
コード例 #14
0
        // Token: 0x060000D5 RID: 213 RVA: 0x00008ECC File Offset: 0x000070CC
        protected override bool ExportUnitechnik(AssemblyInstance assemblyInstance, IEnumerable <RevitElement <Part> > parts, int iProdNo, CNCProjectData projectData)
        {
            Floor floor;

            if (parts == null)
            {
                floor = null;
            }
            else
            {
                RevitElement <Part> revitElement = parts.FirstOrDefault <RevitElement <Part> >();
                floor = ((revitElement != null) ? revitElement.getFloor() : null);
            }
            Floor floor2 = floor;
            bool  flag   = floor2 == null;
            bool  result;

            if (flag)
            {
                ItFailures.PostFailure(ItFailures.UnitechnikFailure, assemblyInstance.Id);
                result = false;
            }
            else
            {
                result = base.ExportUnitechnik(assemblyInstance, parts, iProdNo, projectData);
            }
            return(result);
        }
コード例 #15
0
        // Token: 0x060001AB RID: 427 RVA: 0x0000BC8C File Offset: 0x00009E8C
        public override double GetSteelVolumeInPart(RevitElement <Part> part, ItSolid partSolid)
        {
            IEnumerable <WireItem> source  = base.WireItemsMajor.Union(base.WireItemsMinor);
            IEnumerable <double>   source2 = from item in source
                                             select item.GetSteelVolumeInPart(partSolid);

            return(source2.Sum());
        }
コード例 #16
0
        // Token: 0x06000154 RID: 340 RVA: 0x0000A4DC File Offset: 0x000086DC
        public double GetSteelVolumeInPart(RevitElement <Part> part)
        {
            double  num       = 0.0;
            ItSolid partSolid = part.getSolid(false, null, false, true).DeepClone();

            foreach (SteelGroupElement steelGroupElement in this.steelGroupElements)
            {
                num += steelGroupElement.GetSteelVolumeInPart(part, partSolid);
            }
            return(num);
        }
コード例 #17
0
        // Token: 0x060001C3 RID: 451 RVA: 0x0000C02C File Offset: 0x0000A22C
        private static ItReinforcement GetReinforcementDataInstance(RevitElement <FamilyInstance> girder, SteelGroupElementGirder result)
        {
            ItReinforcement itReinforcement = girder.load <ItReinforcement>(null, false) ?? SteelGroupElement.GetEmptyData(result);
            bool            flag            = SteelGroupElementGirder.IsManualGirder(girder, itReinforcement);

            if (flag)
            {
                itReinforcement = SteelGroupElementGirder.GetManualGirderData(girder);
            }
            return(itReinforcement);
        }
コード例 #18
0
        private Change buildDeleted(RevitElement element)
        {
            Change c = new Change()
            {
                ElementId = element.ElementId, Category = element.Category, ChangeType = Change.ChangeTypeEnum.DeletedElement,
                Level     = (element.Level != null) ? element.Level : "", IsType = element.IsType
            };

            c.BoundingBoxDescription = Utilities.RevitUtils.SerializeBoundingBox(element.BoundingBox);
            return(c);
        }
コード例 #19
0
        /// <summary>
        /// The SharedParameterCompare
        /// </summary>
        /// <param name="current">The current<see cref="RevitElement"/></param>
        /// <param name="previous">The previous<see cref="RevitElement"/></param>
        /// <returns>The <see cref="bool"/></returns>
        private bool SharedParameterCompare(RevitElement current, RevitElement previous)
        {
            bool result = false;

            if (current.sharedParameters == previous.sharedParameters)
            {
                result = true;
            }

            return(result);
        }
コード例 #20
0
        object GetValueFromParam_nameContext(Element elem, ParamExprGrammarParser.Param_nameContext paramName)
        {
            object  parValue = null;
            Element el       = elem;

            if (paramName.ChildCount > 1 && paramName.type() != null)
            {
                el = elem.Document.GetElement(RevitElement.GetTypeId());
            }
            parValue = GetParameterValue(el, paramName);
            return(parValue);
        }
コード例 #21
0
        // Token: 0x060000FB RID: 251 RVA: 0x0000960C File Offset: 0x0000780C
        protected override void setZPositionOfContour(RevitElement <Part> part, ItOutline outline)
        {
            bool flag = part == null || outline == null;

            if (!flag)
            {
                ItGeBoundBlock3d localExtents = part.getLocalExtents(false);
                ItGeMatrix3d     mat          = part.ecs(false);
                ItGeBoundBlock3d transformed  = localExtents.GetTransformed(base.MatWcsToPalette * mat);
                outline.Z = transformed.minPoint.z;
            }
        }
コード例 #22
0
        /// <summary>
        /// Execute compare, find same, modified, delete, new element and create a list of element to synchronize on cloud
        /// </summary>
        public void Execute()
        {
            ModifiedElementToSynchonize = new Dictionary <string, RevitElement>();
            Modified = new List <string>();
            Same     = new List <string>();
            Deleted  = new List <string>();
            New      = new List <string>();

            Deleted = ProjectProvider.Instance.DicRevitElements.Keys.Except(ModelProvider.Instance.DicRevitElements.Keys).ToList();
            New     = ModelProvider.Instance.DicRevitElements.Keys.Except(ProjectProvider.Instance.DicRevitElements.Keys).ToList();

            var EleToCompareGuid = ModelProvider.Instance.DicRevitElements.Keys.Except(New);

            //Parallel.ForEach(EleToCompareGuid, guid =>
            foreach (string guid in EleToCompareGuid)

            {
                History      history               = new History();
                RevitElement current               = ModelProvider.Instance.DicRevitElements[guid];
                RevitElement previous              = ProjectProvider.Instance.DicRevitElements[guid];
                bool         geometryIsSame        = GeometryCompare(current, previous);
                bool         revitParameterIsSame  = ParameterCompare(current, previous);
                bool         sharedParameterIsSame = SharedParameterCompare(current, previous);

                if (geometryIsSame && revitParameterIsSame && sharedParameterIsSame)
                {
                    Same.Add(guid);
                }
                else
                {
                    Modified.Add(guid);
                    if (!geometryIsSame)
                    {
                        history.geometryChange = true;
                    }
                    if (!revitParameterIsSame)
                    {
                        history.parameterChange = true;
                    }
                    if (!sharedParameterIsSame)
                    {
                        history.sharedParameterChange = true;
                    }
                    RevitElement revitElement = new RevitElement(previous, current, new List <History> {
                        history
                    });

                    ModifiedElementToSynchonize.Add(guid, revitElement);
                }
            }
            ;
        }
コード例 #23
0
        private void readGeometry()
        {
            using (SQLiteConnection conn = new SQLiteConnection("Data Source=" + _dbFilename + ";Version=3;"))
            {
                conn.Open();

                var cmd = conn.CreateCommand();
                cmd.CommandText = "select id,BoundingBoxMin,BoundingBoxMax,Location,Location2,Level,Rotation FROM _objects_geom";

                using (SQLiteDataReader reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        int entity_id = reader.GetInt32(0);

                        if (_idValues.ContainsKey(entity_id) == false)
                        {
                            continue;                                            // not sure how, but let's protect just in case.
                        }
                        string bbMin   = reader.GetString(1);
                        string bbMax   = reader.GetString(2);
                        string lp      = reader.GetString(3);
                        string lp2     = reader.GetString(4);
                        string levName = reader.GetString(5);
                        float  rot     = reader.GetFloat(6);

                        RevitElement elem = _idValues[entity_id];

                        if (!String.IsNullOrEmpty(bbMin))
                        {
                            elem.BoundingBox = new BoundingBoxXYZ()
                            {
                                Min = parsePoint(bbMin),
                                Max = parsePoint(bbMax)
                            }
                        }
                        ;
                        if (!String.IsNullOrEmpty(lp))
                        {
                            elem.LocationPoint = parsePoint(lp);
                        }
                        if (!String.IsNullOrEmpty(lp2))
                        {
                            elem.LocationPoint2 = parsePoint(lp2);
                        }

                        elem.Level    = levName;
                        elem.Rotation = rot;
                    }
                }
            }
        }
コード例 #24
0
        private Change buildNew(RevitElement current)
        {
            Element e = _doc.GetElement(new ElementId(current.ElementId));

            Change c = new Change()
            {
                ElementId = current.ElementId, UniqueId = e.UniqueId, Category = current.Category, ChangeType = Change.ChangeTypeEnum.NewElement, Level = (current.Level != null) ? current.Level : "", IsType = current.IsType
            };

            c.BoundingBoxDescription = Utilities.RevitUtils.SerializeBoundingBox(current.BoundingBox);

            return(c);
        }
コード例 #25
0
        public bool Save(RevitElement revitElement)
        {
            var success = true;

            if (revitElement.IsValid)
            {
                //Code to save revit element in db
            }
            else
            {
                success = false;
            }
            return(success);
        }
コード例 #26
0
        /// <summary>
        /// The GeometryCompare
        /// </summary>
        /// <param name="current">The current<see cref="RevitElement"/></param>
        /// <param name="previous">The previous<see cref="RevitElement"/></param>
        /// <returns>The <see cref="bool"/></returns>
        private bool GeometryCompare(RevitElement current, RevitElement previous)
        {
            bool result = false;

            if (current.boundingBox == previous.boundingBox &&
                current.centroid == previous.centroid &&
                current.location == previous.location &&
                current.geometryParameters == previous.geometryParameters &&
                current.volume == previous.volume)
            {
                result = true;
            }

            return(result);
        }
コード例 #27
0
        // Token: 0x0600017A RID: 378 RVA: 0x0000AA94 File Offset: 0x00008C94
        internal static SteelGroupElement GetInstance(RevitElement <FabricSheet> sheet, ItMachineDataBase.CNCElementData cncElementData, ItGeMatrix3d matWcsToPalette)
        {
            bool flag = SteelGroupElementMeshBase.IsCFS(sheet);
            SteelGroupElement instance;

            if (flag)
            {
                instance = SteelGroupElementMeshCFS.GetInstance(sheet, cncElementData, matWcsToPalette);
            }
            else
            {
                instance = SteelGroupElementMeshSFS.GetInstance(sheet, cncElementData, matWcsToPalette);
            }
            return(instance);
        }
コード例 #28
0
        // Token: 0x06000195 RID: 405 RVA: 0x0000B13C File Offset: 0x0000933C
        public override double GetSteelVolumeInPart(RevitElement <Part> part, ItSolid partSolid)
        {
            Part   hostingPart = this.RebarInSystem.Element.getHostingPart();
            bool   flag        = hostingPart != null && part.Id == hostingPart.Id;
            double result;

            if (flag)
            {
                result = this.RebarInSystem.Element.Volume;
            }
            else
            {
                result = 0.0;
            }
            return(result);
        }
コード例 #29
0
        private Change compareElements(RevitElement current, RevitElement previous)
        {
            // compare the parameter values

            // at present, we can only compare string values
            Change c = compareParameters(current, previous);

            if (c != null)
            {
                return(c);
            }

            c = compareGeometry(current, previous);

            return(c);
        }
コード例 #30
0
        // Token: 0x060001CE RID: 462 RVA: 0x0000C334 File Offset: 0x0000A534
        public override double GetSteelVolumeInPart(RevitElement <Part> part, ItSolid partSolid)
        {
            List <ItSolid> solidListFromFamilyInstance = ItSolid.getSolidListFromFamilyInstance(this.Girder.Element, this.Girder.Element.ecs(), false, null, false);
            double         num = 0.0;

            foreach (ItSolid itSolid in solidListFromFamilyInstance)
            {
                Solid solid = partSolid.Solid.intersect(itSolid.Solid);
                bool  flag  = solid != null && solid.Volume.Gt(0.0, -1.0);
                if (flag)
                {
                    num += solid.Volume;
                }
            }
            return(num);
        }