예제 #1
0
        protected bool IsAPBS(string clsName)
        {
            if (string.IsNullOrEmpty(clsName))
            {
                return(false);
            }

            IECClass cls = m_AppSchema.GetClass(clsName);

            return(cls != null && cls.Is(PBSParentCls) ? true : false);
        }
예제 #2
0
        /// <summary>
        /// Writes the stream states to the current schema.
        /// </summary>
        /// <param name="streamStates"></param>
        public static void WriteStreamStateList(DgnFile File, List <StreamState> streamStates)
        {
            DgnECManager       Manager = DgnECManager.Manager;
            FindInstancesScope scope   = FindInstancesScope.CreateScope(File, new FindInstancesScopeOption(DgnECHostType.All));

            IECSchema schema  = RetrieveSchema(File, scope);
            IECClass  ecClass = schema.GetClass(className);

            ECQuery readWidget = new ECQuery(ecClass);

            readWidget.SelectClause.SelectAllProperties = true;

            using (DgnECInstanceCollection instances = Manager.FindInstances(scope, readWidget))
            {
                foreach (IDgnECInstance instance in instances)
                {
                    instance.Delete();
                }
            }

            DgnECInstanceEnabler instanceEnabler = Manager.ObtainInstanceEnabler(File, ecClass);

            var data = JsonConvert.SerializeObject(streamStates) as string;
            StandaloneECDInstance _instance = instanceEnabler.SharedWipInstance;

            _instance.SetAsString(propertyName, data);
            instanceEnabler.CreateInstanceOnFile(File, _instance);
        }
예제 #3
0
        public static List <CellHeaderElement> FindSPDSElementsByInstance(DgnModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException();
            }

            DgnFile      file      = model.GetDgnFile();
            DgnFileOwner fileOwner = new DgnFileOwner(file);

            IECSchema Schema = null;

            { // todo Правильная инициализация схемы:
                Schema = DgnECManager.Manager?.LocateDeliveredSchema(
                    ECHelper.SCHEMA_NAME,
                    VrnMajor, VrnMinor, SchemaMatchType.LatestCompatible, file);
            }

            if (Schema == null)
            {
                return(null);
            }

            IECClass commonClass = Schema.GetClass(ECCLASS_COMMON_NAME);

            ECQuery query = new ECQuery(commonClass);

            var modelConn = DgnModelRepositoryConnection.CreateConnection(
                new DgnECConnectionOptions(), fileOwner, model);

            var instColl = DgnECManager.Manager.FindDgnECInstances(modelConn, query);

            if (instColl == null)
            {
                return(null);
            }

            List <CellHeaderElement> resList = new List <CellHeaderElement>();

            foreach (var item in instColl)
            {
                Element element;
                if (DgnECManager.TryGetElementInfo(modelConn, item.InstanceId,
                                                   out element))
                {
                    if (element is CellHeaderElement)
                    {
                        resList.Add(element as CellHeaderElement);
                    }
                }
            }
            return(resList);
        }
예제 #4
0
            public static DgnECInstanceCollection RetrieveInstances()
            {
                DgnFile      File    = Session.Instance.GetActiveDgnFile();
                DgnECManager Manager = DgnECManager.Manager;

                FindInstancesScope scope   = FindInstancesScope.CreateScope(File, new FindInstancesScopeOption(DgnECHostType.All));
                IECSchema          schema  = Manager.LocateSchemaInScope(scope, schemaName, 1, 0, SchemaMatchType.Latest);
                IECClass           ecClass = schema.GetClass(className);

                ECQuery readWidget = new ECQuery(ecClass);

                readWidget.SelectClause.SelectAllProperties = true;
                DgnECInstanceCollection instances = Manager.FindInstances(scope, readWidget);

                return(instances);
            }
예제 #5
0
            public static IDgnECInstance RetrieveInstance(StreamState streamState)
            {
                DgnFile      File    = Session.Instance.GetActiveDgnFile();
                DgnECManager Manager = DgnECManager.Manager;

                FindInstancesScope scope   = FindInstancesScope.CreateScope(File, new FindInstancesScopeOption(DgnECHostType.All));
                IECSchema          schema  = Manager.LocateSchemaInScope(scope, schemaName, 1, 0, SchemaMatchType.Latest);
                IECClass           ecClass = schema.GetClass(className);

                ECQuery readWidget = new ECQuery(ecClass);

                readWidget.SelectClause.SelectAllProperties = true;
                DgnECInstanceCollection instances = Manager.FindInstances(scope, readWidget);

                var instance = instances.Where(x => x["Id"].StringValue == streamState.Stream.id).FirstOrDefault();

                return(instance);
            }
예제 #6
0
        /// <summary>
        /// Writes the stream states to the current schema.
        /// </summary>
        /// <param name="streamStates"></param>
        public static void WriteStreamStateList(List <StreamState> streamStates)
        {
            DgnFile      File    = Session.Instance.GetActiveDgnFile();
            DgnECManager Manager = DgnECManager.Manager;

            FindInstancesScope scope  = FindInstancesScope.CreateScope(File, new FindInstancesScopeOption(DgnECHostType.All));
            IECSchema          schema = Manager.LocateSchemaInScope(scope, schemaName, 1, 0, SchemaMatchType.Latest);

            if (schema == null)
            {
                schema = StreamStateListSchema.GetSchema();
            }

            IECClass ecClass = schema.GetClass(className);

            ECQuery readWidget = new ECQuery(ecClass);

            readWidget.SelectClause.SelectAllProperties = true;

            using (DgnECInstanceCollection instances = Manager.FindInstances(scope, readWidget))
            {
                foreach (IDgnECInstance instance in instances)
                {
                    instance.Delete();
                }
            }

            DgnECInstanceEnabler instanceEnabler = Manager.ObtainInstanceEnabler(File, ecClass);

            foreach (var streamState in streamStates)
            {
                var data = JsonConvert.SerializeObject(streamState) as string;
                StandaloneECDInstance instance = instanceEnabler.SharedWipInstance;

                instance.SetAsString("Id", streamState.Stream.id);
                instance.SetAsString("StreamData", data);

                instanceEnabler.CreateInstanceOnFile(File, instance);
            }
        }