Generative design pipeline for urban and neighborhood planning
US-12147737-B2 · Nov 19, 2024 · US
US9323871B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9323871-B2 |
| Application number | US-201113169705-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 27, 2011 |
| Priority date | Jun 27, 2011 |
| Publication date | Apr 26, 2016 |
| Grant date | Apr 26, 2016 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
An application programming interface (API) is provided for use with a modeling software. The API allows users at several devices operating on a network to collaboratively develop a model of an object or a group of objects. The API receives an indication that a selected component has been modified by the modeling software in accordance user commands, generates component data indicative of the modifications of the selected component, and causes an update indication to be transmitted to a collaboration server via a communication network to synchronize the selected component between the first computing device and a second computing device. The update indication may include a component identifier, such that the component identifier uniquely identifies the selected component in the model.
Opening claim text (preview).
What is claimed is: 1. A computer usable memory storing an application programming interface (API) thereon for use with a software application for developing a three-dimensional (3D) model that is stored as model data and includes a plurality of components, each component having one or more elements, wherein the API includes a set of instructions that, when executed on a processor of a first computing device, cause the processor to: receive an indication that a selected one of the plurality of components has been modified by the software application in accordance with a set of one or more modification commands received from a user interface of the first computing device; generate component data including a linear listing of the one or more elements of the selected component such that the set of one or more modification commands applied to the selected component is specified relative to the one or more elements included in the selected component; and cause an update indication to be transmitted to a collaboration server via a communication network to synchronize the selected component between the first computing device and a second computing device, wherein the collaboration server is communicatively coupled to the first computing device and the second computing device, and wherein the update indication includes: the component data, and a component identifier that uniquely identifies the selected component. 2. The computer usable memory of claim 1 , wherein the instructions further cause the processor to: generate an operational transformation (OT) representation of the set of one or more modification commands applied to the selected component; and provide the OT representation in the update indication. 3. The computer usable memory of claim 1 , wherein the instructions further cause the processor to: receive an indication that the component has been selected for modification; and cause a lock request to be transmitted to the collaboration server in response to receiving the indication that the component has been selected for modification, including provide the component identifier in the lock request, whereby the collaboration server prevents modifications of the selected component by the second computing device. 4. The computer usable memory of claim 1 associated with a first memory component included in the first computing device, wherein: the second computing device includes a second memory component; each of the first computing device and the second computing device stores a respective copy of the model data respectively in the first memory component or the second memory component; and the instructions cause the processor to generate the component data using the copy of the model data stored in the first memory component. 5. The computer usable memory of claim 1 , wherein: the software application runs as a compiled executable on the first computing device; the API is provided as a plugin that extends a functionality of the software application; and the API is invoked from a script interpreted by the software application at runtime. 6. The computer usable memory of claim 1 , wherein the instructions further cause the processor to: generate an invitation for a user operating the second computing device to collaboratively develop the model, including: provide in the invitation an identifier of a user operating the first computing device, and provide in the invitation an identifier of the user operating the second computing device; cause the invitation to be transmitted to the collaboration server to be forwarded to the second computing device. 7. The computer usable memory of claim 2 , wherein the model data includes a hierarchical tree data structure having a plurality of branches corresponding to the plurality of respective components of the model. 8. The computer usable memory of claim 2 , wherein the OT representation is a first OT representation, and wherein the instructions further cause the processor to: receive an indication that the selected component has been modified at the second computing device, wherein the indication includes a second OT representation of modification commands applied to the selected component at the second computing device; and use the first OT representation and the second OT representation to modify the selected component in accordance with the set of modification commands applied to the selected component at the first computing device and the set of one or more modification commands applied to the selected component at the second computing device. 9. A method in a first computing device for developing a three-dimensional (3D) model in collaboration with a second computing device operating independently of the first computing device, wherein the model includes a plurality of components and wherein each component has one or more elements, the method comprising: causing the model to be stored on a computer-readable medium as model data including a hierarchical tree data structure having a plurality of branches corresponding to the plurality of respective components; in response to a selected component having been modified at the first computing device, generating a serialized representation of the branch that corresponds to the modified component; and causing the model to be synchronized between the first computing device and the second computing device, including causing an update indication to be transmitted to a collaboration server communicatively coupled to the first computing device and the second computing device, wherein the update indication includes the serialized representation of the branch and an indication of a set of transformation operations corresponding to modifications applied to particular elements within the modified component. 10. The method of claim 9 , wherein generating the serialized representation of the branch includes generating an entity identifier to uniquely identify the modified component at the first computing device and the second computing device. 11. The method of claim 9 , wherein generating the serialized representation of the branch includes generating a sequence of basic 3D shapes that make up the modified component to which the branch corresponds. 12. The method of claim 9 , further comprising: receiving a selection of the one of the plurality of components from a user interface of the first computing device; receiving a plurality of modification commands from the user interface, wherein the plurality of modification commands correspond to a set of one or more transformation operations to be performed on the selected component; and modifying the selected component in accordance with the set of one or more transformation operations. 13. The method of claim 9 , wherein causing the selected component to be synchronized comprises not including a serialized representation of unmodified components of the model in the update indication. 14. The method of claim 9 , further comprising causing a lock request to be transmitted to the collaboration server in response to receiving the selected component, wherein: a lock indication identifies the branch, and the collaboration server prevents modifications of the selected component by the second computing device. 15. The method of claim 9 , further comprising: receiving a selection of a plurality of elements from a user interface; receiving a request to group the selected plurality of elements; and in response to receiving the request, associating the selected plurality of elements with a single component. 16. The method of claim 9 , furth
CAD in a network environment, e.g. collaborative CAD or distributed simulation · CPC title
Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads · CPC title
Physics · mapped topic
Physics · mapped topic
Related publications grouped by family.
Answers are generated from the same data shown on this page.