public override void IfcParse(int propIndex, IPropertyValue value)
 {
     if (propIndex == 0)
         _position = (IfcAxis2Placement3D) value.EntityVal;
     else
         this.HandleUnexpectedAttribute(propIndex, value);
 }
예제 #2
0
 public override void IfcParse(int propIndex, IPropertyValue value)
 {
     switch (propIndex)
     {
         case 0:
             _position = (IfcAxis2Placement3D) value.EntityVal;
             break;
         default:
             this.HandleUnexpectedAttribute(propIndex, value); break;
     }
 }
예제 #3
0
        public IXbimGeometryObject Create(IfcGeometricRepresentationItem ifcRepresentation, IfcAxis2Placement3D objectLocation)
        {
            try
            {
                return _engine.Create(ifcRepresentation, objectLocation);
            }
            catch (AccessViolationException e)
            {

                Logger.ErrorFormat("EE001: Failed to create geometry #{0} of type {1}, {2]", ifcRepresentation.EntityLabel, ifcRepresentation.GetType().Name, e.Message);
                return null;
            }
        }
        private static XbimMatrix3D ConvertAxis3D(IfcAxis2Placement3D axis3)
        {

            if (axis3.RefDirection != null && axis3.Axis != null)
            {
                XbimVector3D za = axis3.Axis.XbimVector3D();
                za.Normalize();
                XbimVector3D xa = axis3.RefDirection.XbimVector3D();
                xa.Normalize();
                XbimVector3D ya = XbimVector3D.CrossProduct(za, xa);
                ya.Normalize();
                return new XbimMatrix3D(xa.X, xa.Y, xa.Z, 0, ya.X, ya.Y, ya.Z, 0, za.X, za.Y, za.Z, 0, axis3.Location.X,
                                    axis3.Location.Y, axis3.Location.Z, 1);
            }
            else
                return new XbimMatrix3D(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, axis3.Location.X, axis3.Location.Y,
                                    axis3.Location.Z, 1);

        }
 public override void IfcParse(int propIndex, IPropertyValue value)
 {
     switch (propIndex)
     {
         case 0:
         case 1:
         case 2:
         case 3:
         case 4:
             base.IfcParse(propIndex, value);
             break;
         case 5:
             _predefinedType =
                 (IfcAnalysisModelTypeEnum) Enum.Parse(typeof (IfcAnalysisModelTypeEnum), value.EnumVal, true);
             break;
         case 6:
             _orientationOf2DPlane = (IfcAxis2Placement3D) value.EntityVal;
             break;
         case 7:
             if (_loadedBy == null) _loadedBy = new XbimSet<IfcStructuralLoadGroup>(this);
             _loadedBy.Add((IfcStructuralLoadGroup) value.EntityVal);
             break;
         case 8:
             _hasResults = (IfcStructuralResultGroup) value.EntityVal;
             break;
         default:
             this.HandleUnexpectedAttribute(propIndex, value); break;
     }
 }
 public override void IfcParse(int propIndex, IPropertyValue value)
 {
     switch (propIndex)
     {
         case 0:
         case 1:
         case 2:
         case 3:
             base.IfcParse(propIndex, value);
             break;
         case 4:
             _Position = (IfcAxis2Placement3D)value.EntityVal;
             break;
         case 5:
             _ColourAppearance = (IfcColourRgb)value.EntityVal;
             break;
         case 6:
             _ColourTemperature = value.RealVal;
             break;
         case 7:
             _LuminousFlux = value.RealVal;
             break;
         case 8:
             _LightEmissionSource = (IfcLightEmissionSourceEnum)Enum.Parse(typeof(IfcLightEmissionSourceEnum), value.EnumVal);
             break;
         case 9:
             _LightDistributionDataSource = (IfcLightDistributionDataSourceSelect)value.EntityVal;
             break;
         default:
             this.HandleUnexpectedAttribute(propIndex, value); break;
     }
 }
 public override void IfcParse(int propIndex, IPropertyValue value)
 {
     switch (propIndex)
     {
         case 0:
         case 1:
         case 2:
         case 3:
             base.IfcParse(propIndex, value);
             break;
         case 4:
             _relatingStructuralMember = (IfcStructuralMember) value.EntityVal;
             break;
         case 5:
             _relatedStructuralConnection = (IfcStructuralConnection) value.EntityVal;
             break;
         case 6:
             _appliedCondition = (IfcBoundaryCondition) value.EntityVal;
             break;
         case 7:
             _additionalConditions = (IfcStructuralConnectionCondition) value.EntityVal;
             break;
         case 8:
             _supportedLength = value.RealVal;
             break;
         case 9:
             _conditionCoordinateSystem = (IfcAxis2Placement3D) value.EntityVal;
             break;
         default:
             this.HandleUnexpectedAttribute(propIndex, value); break;
     }
 }
예제 #8
0
        protected virtual void BaseInit()
        {
            _creator = new XbimObjectCreator(this);
            if (_model == null) _model = XbimModel.CreateTemporaryModel();
            using (XbimReadWriteTransaction trans = _model.BeginTransaction("Model initialization"))
            {
                _wcs = _model.Instances.New<IfcAxis2Placement3D>();
                //set world coordinate system
                _wcs.SetNewDirectionOf_XZ(
                    0, 0, 1,
                    0, 1, 0);
                _wcs.SetNewLocation(0, 0, 0);
                trans.Commit();
            }




        }
 public override void IfcParse(int propIndex, IPropertyValue value)
 {
     switch (propIndex)
     {
         case 0:
         case 1:
             base.IfcParse(propIndex, value);
             break;
         case 2:
             _position = (IfcAxis2Placement3D) value.EntityVal;
             break;
         case 3:
             _polygonalBoundary = (IfcBoundedCurve) value.EntityVal;
             break;
         default:
             this.HandleUnexpectedAttribute(propIndex, value); break;
     }
 }
 /// <summary>
 /// Compares two objects for geometric equality
 /// </summary>
 /// <param name="a"></param>
 /// <param name="b">object to compare with</param>
 /// <returns></returns>
 public static bool GeometricEquals(this IfcAxis2Placement3D a, IfcAxis2Placement3D b)
 {
     if (a.Equals(b)) return true;
     double precision = a.ModelOf.ModelFactors.Precision;
     return a.P[0].IsEqual(b.P[0], precision) && a.P[1].IsEqual(b.P[1], precision) && a.Location.GeometricEquals(b.Location);
 }
예제 #11
0
 public XbimAxis2Placement3D(XbimDocument document)
 {
     _ifcAxis2Placement = document.Model.Instances.New<IfcAxis2Placement3D>();
 }