public static double?getADBDoubleValue(Pointer paramPointer)
        {
            DoubleByReference doubleByReference = new DoubleByReference();

            IfcEngineInterface_Fields.INSTANCE.sdaiGetADBValue(paramPointer, 9, doubleByReference);
            return(Convert.ToDouble(doubleByReference.Value));
        }
        public static double?getDoubleAttributeBN(Pointer paramPointer, string paramString)
        {
            DoubleByReference doubleByReference = new DoubleByReference();

            IfcEngineInterface_Fields.INSTANCE.sdaiGetAttrBN(paramPointer, paramString, 9, doubleByReference);
            return(Convert.ToDouble(doubleByReference.Value));
        }
        public static double?getDoubleViaADBAsFirstElementInAGGRAttributeBN(Pointer paramPointer, string paramString)
        {
            PointerByReference pointerByReference = new PointerByReference();

            IfcEngineInterface_Fields.INSTANCE.sdaiGetAttrBN(paramPointer, paramString, 2, pointerByReference);
            if (pointerByReference.Value != null)
            {
                int i = IfcEngineInterface_Fields.INSTANCE.sdaiGetMemberCount(pointerByReference.Value);
                if (i > 0)
                {
                    PointerByReference pointerByReference1 = new PointerByReference();
                    IfcEngineInterface_Fields.INSTANCE.engiGetAggrElement(pointerByReference.Value, 0, 1, pointerByReference1);
                    DoubleByReference doubleByReference = new DoubleByReference();
                    IfcEngineInterface_Fields.INSTANCE.sdaiGetADBValue(pointerByReference1.Value, 9, doubleByReference);
                    return(Convert.ToDouble(doubleByReference.Value));
                }
            }
            return(Convert.ToDouble(0.0D));
        }
        public static IList <IfcEngineUnit> loadIfcEngineUnits(Pointer paramPointer1, Pointer paramPointer2)
        {
            LinkedList         linkedList          = new LinkedList();
            PointerByReference pointerByReference1 = new PointerByReference();
            int i = IfcEngineInterface_Fields.INSTANCE.internalGetP21Line(paramPointer2);

            IfcEngineInterface_Fields.INSTANCE.sdaiGetAttrBN(paramPointer2, "UnitsInContext", 6, pointerByReference1);
            Pointer            pointer1            = IfcEngineInterface_Fields.INSTANCE.sdaiGetEntity(paramPointer1, "IFCCONVERSIONBASEDUNIT");
            Pointer            pointer2            = IfcEngineInterface_Fields.INSTANCE.sdaiGetEntity(paramPointer1, "IFCSIUNIT");
            PointerByReference pointerByReference2 = new PointerByReference();
            int j = 0;

            IfcEngineInterface_Fields.INSTANCE.sdaiGetAttrBN(pointerByReference1.Value, "Units", 2, pointerByReference2);
            j = IfcEngineInterface_Fields.INSTANCE.sdaiGetMemberCount(pointerByReference2.Value);
            for (sbyte b = 0; b < j; b++)
            {
                PointerByReference pointerByReference = new PointerByReference();
                IfcEngineInterface_Fields.INSTANCE.engiGetAggrElement(pointerByReference2.Value, b, 6, pointerByReference);
                if (IfcEngineInterface_Fields.INSTANCE.sdaiGetInstanceType(pointerByReference.Value).ToString().Equals(pointer1.ToString()))
                {
                    IfcEngineUnit      ifcEngineUnit       = new IfcEngineUnit();
                    PointerByReference pointerByReference3 = new PointerByReference();
                    IfcEngineInterface_Fields.INSTANCE.sdaiGetAttrBN(pointerByReference.Value, "ConversionFactor", 6, pointerByReference3);
                    if (pointerByReference3.Value != null)
                    {
                        PointerByReference pointerByReference4 = new PointerByReference();
                        PointerByReference pointerByReference5 = new PointerByReference();
                        IfcEngineInterface_Fields.INSTANCE.sdaiGetAttrBN(pointerByReference3.Value, "ValueComponent", 1, pointerByReference5);
                        DoubleByReference doubleByReference = new DoubleByReference();
                        IfcEngineInterface_Fields.INSTANCE.sdaiGetADBValue(pointerByReference5.Value, 9, doubleByReference);
                        double d = doubleByReference.Value;
                        IfcEngineInterface_Fields.INSTANCE.sdaiGetAttrBN(pointerByReference3.Value, "UnitComponent", 6, pointerByReference4);
                        if (IfcEngineInterface_Fields.INSTANCE.sdaiGetInstanceType(pointerByReference4.Value).ToString().Equals(pointer2.ToString()))
                        {
                            PointerByReference pointerByReference6 = new PointerByReference();
                            PointerByReference pointerByReference7 = new PointerByReference();
                            PointerByReference pointerByReference8 = new PointerByReference();
                            IfcEngineInterface_Fields.INSTANCE.sdaiGetAttrBN(pointerByReference4.Value, "UnitType", 10, pointerByReference6);
                            IfcEngineInterface_Fields.INSTANCE.sdaiGetAttrBN(pointerByReference4.Value, "Prefix", 10, pointerByReference7);
                            IfcEngineInterface_Fields.INSTANCE.sdaiGetAttrBN(pointerByReference4.Value, "Name", 10, pointerByReference8);
                            string str1 = (pointerByReference6 != null && pointerByReference6.Value != null) ? pointerByReference6.Value.getString(0L) : "";
                            string str2 = (pointerByReference7 != null && pointerByReference7.Value != null) ? pointerByReference7.Value.getString(0L) : "";
                            string str3 = (pointerByReference8 != null && pointerByReference8.Value != null) ? pointerByReference8.Value.getString(0L) : "";
                            setUnitType(ifcEngineUnit, str1);
                            setUnitPrefix(ifcEngineUnit, str2);
                            setUnitName(ifcEngineUnit, str3);
                            ifcEngineUnit.ConversionFactor = ifcEngineUnit.ConversionFactor * d;
                            linkedList.AddLast(ifcEngineUnit);
                        }
                        else
                        {
                            Console.Error.WriteLine("IFCERROR: Load Units 1");
                        }
                    }
                    else
                    {
                        Console.Error.WriteLine("IFCERROR: Load Units 2");
                    }
                }
                else if (IfcEngineInterface_Fields.INSTANCE.sdaiGetInstanceType(pointerByReference.Value).ToString().Equals(pointer2.ToString()))
                {
                    IfcEngineUnit      ifcEngineUnit       = new IfcEngineUnit();
                    PointerByReference pointerByReference3 = new PointerByReference();
                    PointerByReference pointerByReference4 = new PointerByReference();
                    PointerByReference pointerByReference5 = new PointerByReference();
                    IfcEngineInterface_Fields.INSTANCE.sdaiGetAttrBN(pointerByReference.Value, "UnitType", 10, pointerByReference3);
                    IfcEngineInterface_Fields.INSTANCE.sdaiGetAttrBN(pointerByReference.Value, "Prefix", 10, pointerByReference4);
                    IfcEngineInterface_Fields.INSTANCE.sdaiGetAttrBN(pointerByReference.Value, "Name", 10, pointerByReference5);
                    string str1 = (pointerByReference3 != null && pointerByReference3.Value != null) ? pointerByReference3.Value.getString(0L) : "";
                    string str2 = (pointerByReference4 != null && pointerByReference4.Value != null) ? pointerByReference4.Value.getString(0L) : "";
                    string str3 = (pointerByReference5 != null && pointerByReference5.Value != null) ? pointerByReference5.Value.getString(0L) : "";
                    setUnitType(ifcEngineUnit, str1);
                    setUnitPrefix(ifcEngineUnit, str2);
                    setUnitName(ifcEngineUnit, str3);
                    linkedList.AddLast(ifcEngineUnit);
                }
                else
                {
                    Console.Error.WriteLine("IFCERROR: Load Units 3");
                }
            }
            return(linkedList);
        }