Three.js: IFC-Importer für Threejs

Erstellt am 24. Sept. 2016  ·  62Kommentare  ·  Quelle: mrdoob/three.js

Ich habe einen ifc 2x3-Importer für Threejs geschrieben. Es ist sehr experimentell, aber die meisten Objekte werden gerendert.

Ist das etwas, das in die Verteilung aufgenommen werden kann? Ich hoffe, dass jemand es weiterentwickelt und schließlich auch ifc4 unterstützt

Beispiel für importiertes ifc:
ifc-imported

Hilfreichster Kommentar

Ich stimme für eine PR 😊 . THREE.IFCLoader wäre ein toller Beitrag!

Alle 62 Kommentare

vergessen zu erwähnen, dass es von ThreeCSG abhängt

Noch nie von diesem Format gehört. Wo wird es normalerweise verwendet?

Soweit ich weiß, wird es hauptsächlich in der Baubranche verwendet, bei der Gebäudemodellierung. Unterstützt von Autocad, Revit, Tekla und Solibri, um nur einige zu nennen.

Ich sehe ich sehe!
Wofür braucht es ThreeCSG?

Beispielsweise; Ein Wandobjekt (extrudierte Form in dreijs) kann eine Öffnung haben. Und die einfachste Lösung, die ich gefunden habe, war die Verwendung von ThreeCSG. Wird auch in anderen Fällen wie IfcBooleanResult verwendet.

Link zur IfcOpeningElement-Spezifikation:
http://www.buildingsmart-tech.org/ifc/IFC2x3/TC1/html/ifcproductextension/lexical/ifcopeningelement.htm

Sie können verweisen auf
http://www.ifcquery.com

@mrdoob , IFC steht für Industry Foundation Classes und soll ein Standardaustauschformat für Building Information Model/Management (BIM)-Projekte sein. Typische Softwarepakete, die damit in Verbindung stehen, sind Revit , ArchiCAD , VisualARQ und einige andere. Während ich verallgemeinere, bietet die BIM-Software Standardobjekttypen wie Wände, Decken, Dächer, Treppen, Fenster usw., die alle von einer Familien-/Stildefinition gesteuert werden, bei der der Bediener die Parameter für das Objekt definiert. Wenn ich also eine Wand mit einer Schicht aus CMU, Gipskarton und Fliesen habe, kann ich die Dicken aller Schichten definieren. Wenn sich etwas ändert, ändere ich die Familien-/Stildefinition und alles aktualisiert sich automatisch! Die Realität ist nicht so magisch! Es ist ein umstrittenes Format, da es jedem Softwareanbieter freisteht, mit der Definition dessen, was eine Wand beim Import/Export sein kann, herumzuspielen http://buildingsmart.org/compliance/certified-software/.
Es ist ein großartiges Format, das unterstützt werden kann, und ich danke @kdilayer für die Einrichtung. @ johnney88 verwendet dieser Viewer Threejs?

Ja, The Viewer verwendet Threejs.
Die gespeicherte Datei 'ifcquery.min.js' wird von Three.js geschrieben, aber verschlüsselt.

Ich kann bestätigen, dass ifc in ConSci verwendet wird. Ich habe tatsächlich eine ifc-Konverter-App verwendet, um meine Unternehmensdateien in .objs mit .mtl-Dateien zu konvertieren, und sie lesen sich wirklich gut. Es wäre also wirklich hilfreich, den Mittelsmann auszuschalten, da unsere Kunden sowieso dazu neigen, ifc-Dateien hochzuladen

@rhairston Eine ifc-Konverter-App? Sie kann eine ifc-Datei in eine obj-Datei konvertieren, damit Threejs sie gut laden kann.
Habe ich recht?

Hier ist eine ifc-Konverter-App?

Danke an alle fürs Mitmachen!

@kdilayer eine PR wäre toll. Bitte füge auch ThreeCSG hinzu

Gibt es hier Fortschritte? Wir konvertieren derzeit IFC in DAE für die Verwendung mit Three.js und würden es begrüßen, wenn Three.js IFC direkt unterstützen würde.

Hallo kdilayer,

Ich bin sehr daran interessiert, einen Blick darauf zu werfen und weiterzumachen.

Hallo zusammen,

Das habe ich auch gesehen https://www.npmjs.com/package/ifc-convert
Damit können Sie IFC in DAE, OBJ, STP und IGS konvertieren.

@kdilayer Irgendwelche Fortschritte?

@kdilayer Gibt es hier Fortschritte? Es wird eine Menge Dinge sparen, wenn Three.js das IFC-Format direkt unterstützen könnte.

Hat niemand Neuigkeiten?

Ich habe den Editor so optimiert, dass er ifc-Dateien unterstützt.
Anbei ein paar Screenshots. Ich habe jetzt schon seit einiger Zeit daran gearbeitet ... derzeit habe ich keine IFC 2x3-Dateien gesehen, die es nicht rendern kann ... Die größte Datei, die ich ausprobiert habe, ist 180 MB ...
Genial.
screen shot 2017-11-15 at 19 19 31
screen shot 2017-11-15 at 19 19 20
screen shot 2017-11-15 at 19 19 08
screen shot 2017-11-15 at 19 18 45

Hey, tolle Arbeit!
Kann direkt vom Master-Zweig darauf zugegriffen werden oder befindet sich der optimierte Code für die IFC-Unterstützung woanders?

Ja! Genial! Wie können wir bitte auf diesen Ladecode zugreifen? :Ö

Ich stimme für eine PR 😊 . THREE.IFCLoader wäre ein toller Beitrag!

Wir würden uns auch über diese Funktion freuen. Im Moment konvertiere ich IFC-Dateien mit https://github.com/IfcOpenShell/IfcOpenShell in obj, aber einige kompliziertere Geometrien werden immer noch nicht geparst, daher ist das Objekt manchmal nicht 100 % Komplett.

Hallo, ich habe mich gefragt, ob Sie einige der komplexen Dinge wie Türen und Transparenzen beim Laden von Fenstern in Ihren Viewer und Loader bekommen können. Es sieht bis jetzt super aus! Ich bin gespannt, ob Sie in naher Zukunft eine Version davon veröffentlichen möchten.

Viel Glück!, Danke für die Aktualisierung.

Hallo @kdilayer , könnten wir bitte Zugriff auf Ihre Bewerbung haben?

Ich bin daran interessiert, den Dateigrößenunterschied zwischen den Formaten .ifc und Three.js zu sehen.

Danke!

@Foosballfan Ich denke, ein IFC ist kein interessantes Format für die Größe, da es sehr ausführlich ist. Es ist nur ein Austauschformat für Architektursoftware wie AutoDesk.
Es ist ein Standard von BIM. (bitten Sie diesen Begriff zu googeln, der in dieser Art von Beruf bekannt ist)

@jean-noelp Danke für die Antwort.

Ich habe eine ifc-Datei für ein Gebäude, die 34 MB groß ist, und versuche, diese Daten mit der kleinstmöglichen Downloadgröße im Web anzuzeigen.

Mit Unity WebGL kann ich es auf etwa 11 MB reduzieren, würde aber gerne sehen, ob es mit mehr reinem WebGL mit Three.js möglich ist. Hoffentlich kann ich eine noch kleinere Downloadgröße erreichen.

Haben Sie Erfahrungen mit einer ähnlichen Situation?

@Foosballfan Um die Dateigröße zu minimieren, würde ich folgende Schritte versuchen:

  1. in OBJ umwandeln
  2. Durchlaufen von obj-simplify
  3. komprimiere das OBJ mit Draco
  4. laden mit THREE.DRACOLoader

Wenn die Datei nicht in OBJ oder ein anderes Format konvertiert werden kann, können Sie wahrscheinlich nicht viel tun, außer das Modell zu vereinfachen oder gzip zu verwenden ... "reines WebGL mit drei.js" ist eine Möglichkeit, die Datei zu rendern, aber Sie müssen immer noch irgendein Format verwenden, um die Datei zuerst zu laden.

@donmccurdy Das sieht toll aus, danke!

Ich werde es ausprobieren und sehen, wie es ausgeht.

Ursprünglich habe ich obj aufgegeben, da ich 220 MB aus der 34 MB-Datei erstellt habe.

Das Problem wird geschlossen, da @kdilayer offensichtlich nicht bereit ist, seine Implementierung zu teilen. Ich habe IFCLoader als Aufgabe zur Loader-Wunschliste in #5524 hinzugefügt.

Solange es kein IFCLoader , versuchen Sie, IFC Dateien in andere Formate wie OBJ zu konvertieren. Anscheinend kann das folgende Tool diese Konvertierung durchführen: http://ifcopenshell.org/ifcobj.html

Siehe auch https://github.com/IfcOpenShell/IfcOpenShell

@Foosballfan : IFC ist der effizienteste Weg, um Geometrie zu komprimieren. Das Problem ist, dass der zum Rendern erforderliche prozedurale Ansatz nicht wirklich mit Dreiecken kompatibel ist. Ein 34 MB IFC kann problemlos in 4 GB Dreiecksstreams extrahieren. IFC beschreibt ein Bogenrohr mit nur 4 Scheitelpunkten, aber es werden Hunderte von Dreiecken benötigt, um es zu rendern. Ein Blick auf die Renderings des OP und ich kann sagen, dass es keinen Löffel gibt. Klar, er kann gerade Linien und einachsige toroidale Formen machen. Die IFC-Spezifikation enthält jedoch Definitionen von Oberflächen, die von zwei Bézier-Splines gesweept werden. Es sind also 8 3D-Scheitelpunkte, die einen praktisch unendlichen Satz von Dreiecken definieren. Architekten lieben dieses Tool, aber selbst das Rendern einer 2D-Darstellung davon auf einem Computer ist problematisch, da die Formel den f(x) = y Ansatz nicht zulässt.
Sehen Sie sich hier die offizielle IFC-Spezifikation an: http://www.buildingsmart-tech.org/ifc/IFC4/final/html/schema/ifcgeometryresource/lexical/ifcbsplinesurface.htm

@kdilayer bist du noch auf github aktiv? Möchten Sie Ihre Implementierung teilen? :ok_hand: Danke!

Der Ansatz, für den ich mich entschieden habe, bestand darin, BimServer zum Streamen der binären IFC-Daten zu verwenden und sie dann in ThreeJS zu erstellen. Die Downloadgröße über den Web-Socket ist zufriedenstellend und ich habe die volle Kontrolle über das Modell in Three.

Sie können sich die Funktionsweise von BimViewer als Ausgangspunkt ansehen.

irgendwelche Antworten?

@Joao-b4 Was ist mit?

über einen möglichen IFC-Loader

Ah, ich denke, es liegt an @kdilayer...

Ich glaube, dass @kdilayer nichts haben wird, da seit der Veröffentlichung 3 Jahre
Ich verstehe nicht, wie das Erstellen eines Loaders funktioniert, und ich habe ein wenig Wissen in der Bibliothek, ich arbeite vor einiger Zeit damit, ich hätte einige Links, um einen Loader zu erstellen, ich kann genug Disposition und Wissen in die Zukunft.

Ich habe hier ein grundlegendes Gerüst von THREE.IFCLoader skizziert. Der schwierigste Teil beim Schreiben eines Loaders besteht darin, das jeweilige 3D-Format tatsächlich zu verstehen. Erst dann können Sie das Format analysieren und die Geometrie- und/oder Materialdaten in three.js Entitäten (zB THREE.BufferGeometry ) umwandeln. Ich empfehle, einen mehr oder weniger einfachen Loader wie THREE.PLYLoader zu studieren, um diesen Prozess zu verstehen. Und natürlich der IFC-Standard (https://www.iso.org/standard/51622.html)

Danke, ein ifc-Loader wäre wirklich nützlich, und ich brauche jetzt einen, ich verwende das, was sie oben erwähnt haben, um in OBJ zu konvertieren, aber ich denke nicht, dass es der beste Weg ist

Das war vor 1,5 Jahren, also ist mein Gedächtnis eingerostet, aber ich glaube, unsere Lösung bestand darin, den bim-Server zu verwenden, um die Geometrien vom Server zu liefern, und dann Three auf dem Frontend zu verwenden, um das Rendering zu verarbeiten.

Es hat ein bisschen gebastelt, aber irgendwann hat es funktioniert.

IfcConvert ist ein IfcConverter für Node.js. Es konvertiert von .ifc in .dae, .obj, .stp und .igs. Ich habe es noch nicht ausprobiert, aber wenn es wie beschrieben funktioniert, würden wir in Three.js wohl keinen .ifc-Loader mehr brauchen, oder?
.ifc enthält viel mehr Informationen als nur das 3D-Modell, aber was Three.js betrifft, sollte nur das 3D-Modell importiert werden.
Für einen Exporteur wäre dies anders, da man neben dem tatsächlich exportierten 3D-Modell auch seine eigene BIM-Bibliothek in eine .ifc-Datei exportieren möchte.
Macht das Sinn ?

Es könnte dennoch interessant sein, IFC direkt in den Browser zu laden, ohne dass ein separates Konvertierungstool benötigt wird. Das erwähnte node.js-Tool ist jedoch nur ein Wrapper um IfcOpenShell . Es macht also nichts wirklich Neues...

Ich denke, der Import-Workflow über IfcConverter könnte gut sein!

Im Gegenteil, der ifc-Export macht für mich keinen Sinn, da man in einem Lambda-Three.js-Viewer alle relevanten ifc-Daten (Architekturkomponenten, BIM-Stakeholder...) verliert, es sei denn, man baut einen Ifc-Editor mit Three.js .

@Mugen87 Nun, der wichtigste Mehrwert ist das Node-Paket, da meines Wissens IfcOpenShell online ein CLI-Tool ist.

@jean-noelp Du hast recht. Ich meinte nicht einen Export der "Master .ifc-Datei", sondern eine "Bibliothek .ifc-Datei", die BIM-Beteiligte in ihre eigene "Master-.ifc-Datei" importieren könnten. Wenn Sie beispielsweise ein Garagentorhersteller sind, verwenden Sie Three.js, um die Installation für Ihre Kunden (z. B. Architekten) zu planen und die BIM-Bibliothek mit Ihren BIM-Objekten (normalerweise das Garagentor) zu exportieren. Du siehst was ich meine ? Aber wie auch immer, es gäbe keine Möglichkeit, diesen Exporter in Three.js zu integrieren, da jeder einzelne Anwendungsfall viel zu spezifisch ist (glaube ich).

Ich finde ein TOOL, IFC kann gelöst werden,
Es ist nicht kostenlos ,
Aber das Parsen der IFC-Struktur ist kostenlos und Open Source
http://www.apstex.com/

Grüße, es gibt keine Neuigkeiten von @kdilayer oder? er hat den Quellcode nie veröffentlicht?

?

------------------ Die ursprüngliche Nachricht ------------------
Von: "Daniel Ramos"< [email protected]>;
Lieferzeit: 28.05.2020 (Donnerstag) 22:08
An: "mrdoob/three.js"[email protected]>;
Cc: " Leave the net de fish"< [email protected]>;
Betreff: Re: [mrdoob/three.js] IFC-Importer für Threejs (#9764)

Seid gegrüßt, es gibt keine Neuigkeiten von @kdilayer oder er hat den Quellcode nie veröffentlicht?


Sie erhalten dies, weil Sie einen Kommentar abgegeben haben.
Antworten Sie direkt auf diese E-Mail, zeigen Sie sie auf GitHub an oder melden Sie sich ab.

Irgendetwas Neues darüber ?

Hallo! Vor einigen Tagen habe ich begonnen, einen IFC-Parser in JS zu implementieren, mit der Idee, ihn auf Three.js anzuwenden. Dies ist ein persönliches Projekt, das ich in meiner Freizeit mache, daher habe ich keine klare Vorstellung davon, wie lange es dauern wird. Ich habe diesen Thread heute jedoch gesehen und dachte, Sie könnten ihn interessieren. Sie finden es hier .

@agviegas freu mich auf das was ihr damit macht! eine PR wäre wirklich willkommen

In der Tat! @agviegas vielleicht bekommen wir mehr Leute, die dabei helfen, wenn du eine PR damit machst

Leider konnte ich meine Arbeit nicht auf dem ifcimporter veröffentlichen, aber ich kann @agviegas helfen

@mrdoob Das hört sich toll an. Ich arbeite noch an den Kernfunktionen des Parsers; Es kann bereits alle räumlichen Strukturelemente laden und ich werde demnächst mit dem Erstellen der Geometrie beginnen. Ich nehme an, dass der Code auch angepasst werden muss dies vor der PR zu tun. Gibt es Referenzen, die überprüft werden müssen, um den Code für die PR vorzubereiten? Wir können dies tun, wann immer Sie möchten. Jede diesbezügliche Hilfe ist willkommen.

Auf der anderen Seite ist das IFC-Format sehr einfach zu implementieren, obwohl es aufgrund der Härte der offiziellen Dokumentation ein wenig einschüchternd sein kann. Ich denke, dass ich das IFC-Format relativ gut kenne. Wenn also jemand Interesse hat, mitzumachen, können wir dies sicherlich früher vorbereiten. 🙂

Captura

Ich nehme an, dass der Code auch angepasst werden muss dies vor der PR zu tun.

Ja, es sollte dieselbe Schnittstelle verwenden, die die anderen Lader verwenden. Vielleicht ist der MD2Loader jetzt die einfachere Referenz.

Machen Sie sich keine Sorgen, dass alles perfekt für die PR ist. Sie können das, was Sie haben, als Entwurf einreichen und wir können helfen, sicherzustellen, dass der Code zum Rest passt.

Nach mehreren Stolperfallen und Kämpfen mit dem Format gibt es bereits einige Ergebnisse. Ich habe die erste Version des Parsers implementiert, sowie einige der geometrischen Entitäten (einschließlich Extrusionen und B-Reps). Es bleibt noch viel zu tun, aber mit den bisherigen Ergebnissen bin ich zufrieden. Das Bild unten zeigt einen kleinen IFC, der von Revit generiert wurde und reibungslos in Chrome läuft. Jeder geometrischen Instanz sind die geparsten IFC-Informationen zugeordnet (in der Szene unten hat jede Instanz ein Material abhängig von ihrer Kategorie / ifc-Klasse), sodass das Erstellen von Filtern mit Eigenschaftswerten (Psets und Qsets) von diesem Punkt aus nicht schwer zu erreichen sein sollte . Alle Ideen oder Vorschläge sind willkommen. 🙂

20201124_screenshot

@agviegas Ausgezeichnet!

@agviegas Sehr gut gemacht!

Was Ideen für die Immobilienverwaltung angeht. Wie lagerst du diese jetzt? Genauso wie userData auf den Netzen oder der Geometrie, nehme ich an?

Die meisten unserer Kunden verwenden Software wie HiCad oder ArchiCAD für ihre Modellierung und speichern EINE TONNE von Informationen, die für die Bauarbeiter sehr wichtig sind (Wärmedichte, Windwiderstand, Maße, Gewichte usw. usw.).

Ich bin auch sehr neugierig auf die Parsing- / Ladegeschwindigkeit. Die Modelle, mit denen ich meine Implementierung getestet habe, benötigen etwa 5 Sekunden zum Analysieren, aber um die Geometrie zu generieren, dauert die Konvertierung in ein DAE-Modell fast 2 Minuten. (Ich konvertiere es serverseitig aufgrund des Mangels an Zeit und Erfahrung auf meiner Seite :sweat_smile:, weshalb ich so aufgeregt bin, dass dieser Loader "nativ" funktioniert)

@haroldiedema Ich habe die Eigenschaftssätze noch nicht implementiert, aber die aktuelle Datenstruktur besteht aus einem JS-Objekt, bei dem die Schlüssel die Express-IDs sind und die Werte die in den Speicher geladenen geparsten Objekte sind. Jede Eigenschaft, die eine Express-ID war, wird durch einen Verweis auf das Objekt mit dieser ID ersetzt. In der aktuellen Implementierung hat jede Instanz von _IfcProduct_ mit einer oder mehreren geometrischen Darstellungen eine zusätzliche Eigenschaft namens _Geometry_ , die ein Array von Referenzen auf die Geometrien der Szene ist. Zum Beispiel hat jedes _IfcWallStandardCase_ eine Eigenschaft _Geometry_ mit einem Verweis auf den _Path_ (a Line ) a auf den _Body_ (a Mesh ).

Wahrscheinlich hat jede geometrische Instanz von Three.js eine Eigenschaft, die die Express-ID enthält, so dass es einfach ist, die im Speicher geladene ifc-Entität (und die zugehörigen Informationen) wiederzufinden (zB beim Klicken auf die Meshes in der Szene).

Was die benutzerdefinierten Eigenschaften betrifft, gibt es eine oder mehrere _IfcRelDefinesByProperties_ (oder ein anderes indirektes Beziehungsobjekt), um alles aneinander zu binden. Vielleicht kann jede Instanz von IfcProduct ein Attribut _hasPropertySets_ haben, das ein Array der zugehörigen geparsten Eigenschaftssätze enthält (ich habe dieses Muster in anderen IFC-Bibliotheken gesehen, und das mache ich mit anderen indirekten Beziehungen wie _IfcRelAggregates_). Ich mache mir keine Sorgen über die Anzahl der Immobilien, da sie gemäß der IFC strukturiert werden, aber mal sehen, wie es läuft, wenn ich dort ankomme. 😅

Ich mache alles clientseitig, und derzeit dauert das Parsing weniger als eine Sekunde und die geometrische Generierung der letzten angezeigten Szene etwa 4 Sekunden. Mir ist bewusst, dass diese Zeit bei größeren Dateien länger wird; Ich hoffe jedoch, das System optimieren zu können, wenn ich mehr IFC-Entitäten abgedeckt habe und IFCs aus realen Projekten laden kann. 🙂 Ich werde das Dokument _CONTRIBUTING_ erweitern, falls sich jemand damit befassen möchte.

@agviegas das klingt

Ich habe versucht, den Hauptzweig Ihres Repositorys zu klonen, um einige unserer Kundenmodelle zu testen, aber leider erzeugt jedes einzelne von ihnen einen Fehler in der Konsole über _ExpressId ist undefiniert (nicht alle Modelle sind 100% kohärent, wenn es um die Referenzierung von Datensätzen geht das gibt es tatsächlich). Ich denke, einige CAD-Software bereinigt Verweise auf entfernte Eigenschaften nicht gut.

Ich könnte einige dieser Modelle mit Ihnen teilen, aber das müssen wir privat machen. Sie können mich unter [email protected] erreichen, wenn Sie an weiteren Testfällen von Modellen interessiert sind, die mit ArchiCAD oder HiCAD exportiert wurden.

@haroldiedema Ich habe die Eigenschaftssätze noch nicht implementiert, aber die aktuelle Datenstruktur besteht aus einem JS-Objekt, bei dem die Schlüssel die Express-IDs sind und die Werte die in den Speicher geladenen geparsten Objekte sind. Jede Eigenschaft, die eine Express-ID war, wird durch einen Verweis auf das Objekt mit dieser ID ersetzt. In der aktuellen Implementierung hat jede Instanz von _IfcProduct_ mit einer oder mehreren geometrischen Darstellungen eine zusätzliche Eigenschaft namens _Geometry_ , die ein Array von Referenzen auf die Geometrien der Szene ist. Zum Beispiel hat jedes _IfcWallStandardCase_ eine Eigenschaft _Geometry_ mit einem Verweis auf den _Path_ (a Line ) a auf den _Body_ (a Mesh ).

Wahrscheinlich hat jede geometrische Instanz von Three.js eine Eigenschaft, die die Express-ID enthält, so dass es einfach ist, die im Speicher geladene ifc-Entität (und die zugehörigen Informationen) wiederzufinden (zB beim Klicken auf die Meshes in der Szene).

Was die benutzerdefinierten Eigenschaften betrifft, gibt es eine oder mehrere _IfcRelDefinesByProperties_ (oder ein anderes indirektes Beziehungsobjekt), um alles aneinander zu binden. Vielleicht kann jede Instanz von IfcProduct ein Attribut _hasPropertySets_ haben, das ein Array der zugehörigen geparsten Eigenschaftssätze enthält (ich habe dieses Muster in anderen IFC-Bibliotheken gesehen, und das mache ich mit anderen indirekten Beziehungen wie _IfcRelAggregates_). Ich mache mir keine Sorgen über die Anzahl der Immobilien, da sie gemäß der IFC strukturiert werden, aber mal sehen, wie es läuft, wenn ich dort ankomme. 😅

Ich mache alles clientseitig, und derzeit dauert das Parsing weniger als eine Sekunde und die geometrische Generierung der letzten angezeigten Szene etwa 4 Sekunden. Mir ist bewusst, dass diese Zeit bei größeren Dateien länger wird; Ich hoffe jedoch, das System optimieren zu können, wenn ich mehr IFC-Entitäten abgedeckt habe und IFCs aus realen Projekten laden kann. 🙂 Ich werde das Dokument _CONTRIBUTING_ erweitern, falls sich jemand damit befassen möchte.

Das Parsen von User Defined IFC Property Sets ist supereinfach. Ich habe ein Repo , das das tut. Mein Parser ist nicht so ausgereift wie Ihrer.

Mir ist jedoch aufgefallen, dass einige Eigenschaften dazu neigen, Parser zu zerstören. Ich habe chevrotain nicht verwendet, daher bin ich mir nicht sicher, wie Ihr Code halten würde. Ich habe mehr über diese Probleme geschrieben hier . Hoffe, es kann dir etwas nützen.

Auf jeden Fall bisher sehr gute Arbeit! 👍

Update: Ich habe die App auf Github-Seiten bereitgestellt, um Benutzertests während der gesamten Entwicklung zu erleichtern. Dazu gehört eine reaktionsschnelle Navigation für die Unterstützung von Mobilgeräten und Tablets. Außerdem finden Sie hier eine alternative Bereitstellung, die beim Start ein IFC-Modell lädt. die Logik zum Löschen der Szene und zum Hinzufügen mehrerer IFCs ist noch nicht implementiert, aber zumindest kann man sehen, wie die Navigation aussieht. Das Parsing erfolgt durch den Client, daher hängen die Ladezeiten vom verwendeten Gerät ab. Mein Laptop schafft es in etwa 5 Sekunden, während mein Moto G5 Plus für diese Szene etwa 50 Sekunden braucht. Es müssen noch Klassen implementiert werden, bevor ein vollständiges Projekt geladen wird, aber Sie können mir gerne IFCs senden, um sie den Testdateien hinzuzufügen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen